【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/
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"}