1.首先,默認情況下docker的鏡像和容器都是保存在/var/lib/docker下面,可以進入查看一下:
如果不是root用戶查看的話,可能會出現權限不夠的問題,可以通過chown更改文件夾權限:
sudo chown -R apr:user /var/lib/docker
其中,apr表示用戶當前所在的用戶組,user表示用戶賬戶名稱
可以使用groups user查看用戶user所在的用戶組
2.使用du命令查看文件夾大小:
sudo du -hd 1
verlay2就是鏡像文件大小
3.將原來的docker文件夾拷貝到新的地方(比如更大的磁盤上,假設是/data分區)
sudo cp -r /var/lib/docker /data/docker
注:這里不需要新建一個/data/docker目錄,再進行復制,如果原來就存在、data/docker的話,復制的結果會變成/data/docker/docker
4.然后修改docker中默認鏡像和容器的保存位置。
sudo vim /etc/docker/daemon.json
5.將里面的data-root改為新的docker容器存儲位置(前面一行如果配置有鏡像源的話,一定要加“,”將兩個語句隔離開)
"data-root": "/data/docker",
6.修改docker.service里的內容
vim /lib/systemd/system/docker.service
將ExecStart這一行修改為:
ExecStart=/usr/bin/dockerd --graph=/data/docker --storage-driver=overlay
然后重啟docker服務,就可以更新docker默認的鏡像容器保存位置,特別注意,如果新的保存位置里拷貝了原來容器保存位置里的所有內容,那么鏡像數據等也就遷移過來了。
sudo systemctl stop docker
sudo systemctl start docker
sudo systemctl status docker
docker主要是做了文件系統的隔離,所以每個鏡像和容器實際上都是依賴塊隔離的硬盤空間(在里面部署一個隔離的文件系統),所以可以通過直接拷貝的方式進行遷移,而不需要擔心有什么依賴關系無法通過拷貝帶過去。