操作系統:ubuntu 24.04
docker版本:docker-ce 28.1.1
目標:將/var/lib/docker 的數據遷移到/data/docker
- 停止docker
sudo systemctl stop docker.socket
sudo systemctl stop docker
這個步驟一定要做,否則容易導致數據不一致。
- rsync數據遷移
sudo mkdir -p /data/docker
sudo rsync -avzP /var/lib/docker/ /data/docker
說明:
- 安全,保留文件屬性和權限(-a 參數),很多遷移的方案后看不到鏡像和容器的愿意就是文件屬性和權限不一致導致。
- 增量同步,支持斷點續傳(-P參數)
- 修改配置
sudo vim /etc/docker/daemon.json
添加關鍵參數 data-root
,重新指向新的地址
{"data-root":"/data/docker"
}
- 重啟docker服務
sudo systemctl start docker.socket
sudo systemctl start docker
- 備份
sudo mv /var/lib/docker var/lib/docker.bak
- 查看容器和鏡像
sudo docker ps -a
如果能看到原來
的鏡像和容器就表明沒有問題。
- 刪除備份
sudo rm /var/lib/docker -rf
第6步檢查完成后即可刪除舊文件,騰出空間了。