Featured image of post Docker 更改容器與映像的儲存位置

Docker 更改容器與映像的儲存位置

Docker 使用預設的儲存位置來存放映像和容器數據。如果預設儲存位置的空間不足,或是你想要將映像和容器數據存放在其他硬碟上…

Docker 使用預設的儲存位置來儲存映像和容器數據。Docker 更改容器與映像的儲存位置如果預設儲存位置的空間不足,或是你想要將映像和容器數據儲存在其他硬碟上,你可以依照以下步驟來更改映像與容器的儲存位置:

  1. 確認運行位置,停止 Docker 服務
    預設情況下,Docker 映像和容器數據儲存於 /var/lib/docker 目錄下。為了確認具體路徑,建議執行命令 docker info | grep "Docker Root Dir"。在更改儲存位置之前,首先需停止 Docker 服務。在終端中輸入以下命令以停止 Docker 服務:
1
sudo systemctl stop docker
  1. 創建一個目錄用於儲存 Docker 數據
    在新的硬碟上創建一個目錄,用以儲存 Docker 的數據。你可以使用 mkdir 命令來創建目錄。例如,若你希望將 Docker 數據儲存在 /mnt/new_location 目錄下,可以使用以下命令:
1
sudo mkdir -p /mnt/new_location/docker

這個命令會在 /mnt/new_location 目錄下創建一個名為 docker 的子目錄。你可以根據需要更改目錄路徑和名稱。

  1. 複製現有 Docker 數據到新的目錄
    如果你想要將現有的 Docker 數據複製到新的目錄,可以使用 rsync 命令進行複製。例如,如果當前 Docker 數據儲存在 /var/lib/docker 目錄下,可以使用以下命令將數據複製到新的目錄:
1
sudo rsync -axP /var/lib/docker/ /mnt/new_location/docker/

這個命令會將 /var/lib/docker 目錄下的所有文件和子目錄複製到 /mnt/new_location/docker/ 目錄下。這個過程可能會花費一些時間,具體取決於數據的大小及硬碟的速度。

  1. 更改 Docker 配置文件
    現在你需要更改 Docker 的配置文件,以便 Docker 使用新的儲存位置。編輯 /etc/docker/daemon.json 文件,並添加以下內容:
1
2
3
{
  "data-root": "/mnt/new_location/docker"
}

這個配置文件告訴 Docker 使用 /mnt/new_location/docker 目錄作為新的儲存位置。

  1. 重啟 Docker 服務
    最後,重新啟動 Docker 服務以使變更生效。在終端中輸入以下命令來重新啟動 Docker 服務:
1
sudo systemctl start docker

再次執行命令 docker info | grep "Docker Root Dir" 查看目錄是否已成功更改。

現在 Docker 將使用新的儲存位置來儲存映像和容器數據。如果你想要將 Docker 數據移回預設位置,只需將 daemon.json 文件中的 data-root 屬性設置為 /var/lib/docker 即可。

Licensed under CC BY-NC-SA 4.0
使用 Hugo 建立
主題 StackJimmy 設計