Docker數據在CentOS上的遷移步驟
遷移前必須停止Docker服務,確保數據一致性,避免遷移過程中容器或鏡像被修改導致損壞。執行以下命令:
sudo systemctl stop docker
通過docker info命令查看當前Docker數據存儲路徑(關鍵信息為Docker Root Dir),默認通常是/var/lib/docker:
sudo docker info | grep "Docker Root Dir"
選擇目標存儲路徑(如/new/docker-data,可根據磁盤空間情況選擇,如/home或掛載的大容量分區),并創建目錄:
sudo mkdir -p /new/docker-data
使用rsync命令同步數據(保留文件權限、屬性及時間戳,避免數據損壞):
sudo rsync -avz /var/lib/docker/ /new/docker-data/
若數據量較小,也可用cp -a命令(-a參數保留所有屬性):
sudo cp -a /var/lib/docker/. /new/docker-data/
編輯Docker配置文件/etc/docker/daemon.json(若文件不存在則創建),添加data-root字段指定新路徑:
sudo vim /etc/docker/daemon.json
內容如下(僅保留data-root,避免與其他配置沖突):
{
"data-root": "/new/docker-data"
}
若系統啟用了SELinux,需修改新目錄的安全上下文,確保Docker能訪問:
sudo chcon -R system_u:object_r:container_var_lib_t:s0 /new/docker-data
加載新配置并啟動Docker:
sudo systemctl daemon-reload # 重新加載systemd配置
sudo systemctl start docker # 啟動Docker服務
Docker Root Dir是否為新路徑:docker info | grep "Docker Root Dir"
預期輸出應顯示新路徑(如Docker Root Dir: /new/docker-data)。docker run --rm hello-world
確認新路徑工作正常后,刪除舊數據目錄釋放空間:
sudo rm -rf /var/lib/docker
tar打包/var/lib/docker),防止誤操作導致數據丟失。755,且Docker用戶(通常為root)有讀寫權限。df -h檢查)。overlay2)與舊系統一致,避免兼容性問題。