[Notes] Ubuntu下修改docker 鏡像存儲位置並進行數據遷移


默認情況下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

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM