默認情況下docker的鏡像和容器都是保存在
/var/lib/docker下面
可以通過
du -h --max-depth=1 /var/lib/docker
查看文件夾大小的方式來確認文件夾內是不是有鏡像(如有那么一般會很大)。
方法1:
然后在將這個文件夾拷貝到新的地方(比如說更大的硬盤上,假設是/data分區,它掛載在一個單獨硬盤上):
sudo cp -r /var/lib/docker /data/docker
然后修改docker中默認鏡像和容器的保存位置。
sudo vim /etc/docker/daemon.json
將里面的data-root改為新的docker容器存儲位置,
"data-root": "/data/docker",
然后重啟docker服務,就可以更新docker默認的鏡像容器保存位置,特別注意,如果新的保存位置里拷貝了原來容器保存位置里的所有內容,那么鏡像數據等也就遷移過來了。
sudo systemctl stop docker sudo systemctl start docker sudo systemctl status docker
個人認為這種遷移方式主要和docker的實現邏輯有關,畢竟docker主要是做了文件系統的隔離,所以每個鏡像和容器實際上都是依賴塊隔離的硬盤空間(在里面部署一個隔離的文件系統),所以可以通過直接拷貝的方式進行遷移,而不需要擔心有很么依賴關系無法通過拷貝帶過去。
方法2:
將/var/lib/docker目錄遷往他處
sudo mv /var/lib/docker /data/docker
通過軟鏈接的方式再把它處的文件夾鏈接會/var/lib/docker,重啟docker
ln -s /data/docker /var/lib/docker
sudo systemctl stop docker sudo systemctl start docker sudo systemctl status docker