1. 程式人生 > >【Docker】如何修改Docker的預設映象儲存位置(二)

【Docker】如何修改Docker的預設映象儲存位置(二)

江湖有多大,坑就有多多……

我使用的伺服器, 系統盤根目錄只有20G, 預設Docker 的映象檔案是安裝在/var/lib/docker 目錄下的, 這樣的話我根本裝不了太多的映象,之前遇到一種情況就是docker服務對磁碟的讀寫操作太大,而且是軟連線方式,導致伺服器的磁碟不可用,當然測試環境用的是虛擬伺服器。 所以這個中情況需要調整一下。

伺服器環境:centos7,docker1.12.6

方案1:使用軟連結方式(不建議,可以瞭解一下)

預設情況下Docker的存放位置為:/var/lib/docker

可以通過下面命令檢視具體位置:

sudo docker info | grep "Docker RootDir"

解決這個問題,最直接的方法當然是掛載分割槽到這個目錄,但是我的資料盤還有其他東西,這肯定不好管理,所以採用修改映象和容器的存放路徑的方式達到目的。

這個方法裡將通過軟連線來實現。

1.首先停掉Docker服務:

systemctl restart docker

或者

service docker stop

2.對之前的資料做個檔案備份

tar -zcC /var/lib/docker >/mnt/var_lib_docker-backup-$(date + %s).tar.gz

3.然後遷移整個/var/lib/docker目錄到目的路徑:

mv /var/lib/docker /data/tools/docker

4.建立symlink軟連結(不會自己Google)

ln -s /data/tools/docke /var/lib/docker

5.確認資料夾型別為symlink 型別

ls -al /var/lib/docker

6.這時候啟動Docker時發現儲存目錄依舊是/var/lib/docker,但是實際上是儲存在資料盤的,你可以在資料盤上看到容量變化。

sudo systemctl start docker

方案2:修改映象和容器的預設存放路徑

指定映象和容器存放路徑的引數是--graph=/var/lib/docker,我們只需要修改配置檔案指定啟動引數即可。剛好有個300g盤的掛在/data目錄上,所以在這個目錄下新建一個檔案路徑/data/

tools/docker

1.Docker的配置檔案可以設定大部分的後臺程序引數,在各個作業系統中的存放位置不一致,在 Ubuntu 中的位置是:/etc/default/docker,在 CentOS中的位置是:/etc/sysconfig/docker。

如果是 CentOS6 則新增下面這行:

OPTIONS=--graph="/data/tools/docker"--selinux-enabled -H fd://

如果是 Ubuntu 則新增下面這行(因為 Ubuntu 預設沒開啟 selinux):

OPTIONS=--graph="/data/tools/docker" -H fd://#

或者

DOCKER_OPTS="-g /data/tools/docker"

最後重新啟動,Docker 的路徑就改成 /data/tools/docker 了。

如果是CentOS7 就是用如下:

修改docker.service檔案,使用--graph引數指定儲存位置

sudo   vim   /usr/lib/systemd/system/docker.service 

文字內容:ExecStart=/usr/bin/dockerd下面新增如下內容:

--graph /data/tools/docker

 

2.修改完成後reload配置檔案

sudo systemctl daemon-reload

3.重啟docker服務

sudo systemctl  restart docker.service

4.修改預設儲存路徑的任務已經完成了,期待下一個《非root使用者加入docker使用者組省去sudo (三)》

備註:如果docker是1.12或以上的版本,可以修改(或新建)daemon.json檔案。修改後會立即生效,不需重啟docker服務。

sudo  vim  /etc/docker/daemon.json

修改如下:

{"registry-mirrors": [""],"graph":"/data/tools/docker"}

 5.希望你能順利完成操作,有問題儘量還是多看官網文件吧,有驚喜!