Docker配置本地映象與容器的儲存位置
阿新 • • 發佈:2018-12-26
使用find命令找到大於指定大小的檔案:
find / -type f -size +10G
排除某個目錄
find / -path "/media/xww" -type f -size +10G
修改Docker本地映象與容器的儲存位置的方法
方法一、軟連結
預設情況下Docker的存放位置為:/var/lib/docker
可以通過下面命令檢視具體位置:
sudo docker info | grep "Docker Root Dir"
解決這個問題,最直接的方法當然是掛載分割槽到這個目錄,但是我的資料盤還有其他東西,這肯定不好管理,所以採用修改映象和容器的存放路徑的方式達到目的。
這個方法裡將通過軟連線來實現。
首先停掉Docker服務:
systemctl restart docker
或者
service docker stop
然後移動整個/var/lib/docker目錄到目的路徑:
mv /var/lib/docker /root/data/docker
ln -s /root/data/docker /var/lib/docker
這時候啟動Docker時發現儲存目錄依舊是/var/lib/docker,但是實際上是儲存在資料盤的,你可以在資料盤上看到容量變化。
方法二、可擴充套件邏輯卷
預設情況下docker的存放位置為:
/var/lib/docker
一般根下分割槽我們不會給太大。映象和容器越存越多一般我們有兩種解決方法
1、掛載大分割槽到/var/lib/docker:
一般選擇建立邏輯分割槽lvm,方便後期擴充套件集體。
a.建立新分割槽,並格式化
PS: 以下操作建設你已經有現成的卷組,直接可以劃邏輯卷。或者你可以自己建立邏輯卷,或者不適用邏輯卷直接使用分割槽
lvcreate -L 300G lv_docker vg_home
mkfs.ext4 /dev/vg_home/lv__docker
b.掛載新分割槽到臨時掛載點
[plain] view plain copy
mkdir /mnt/docker
mount /dev/vg_home/lv_docker /mnt/docker/
c.停掉docker後拷貝/var/lib/docker下資料到臨時掛載點
[plain] view plain copy
service docker stop
cp -r /var/lib/docker/ * /mtn/docker
d.修改/var/lib/docker 為//var/lib/docker.bak,並建立/var/lib/docker
[plain] view plain copy
mv /var/lib/docker{,.bak}
mkdir /var/lib/docker
e.掛載新分割槽到/var/lib/docker,並設定開機自動掛載。
[plain] view plain copy
mount /dev/vg_home/lv_docker /var/lib/docker
vim /etc/fstab
---
/dev/vg_home/lv_docker /docker_data ext4 defaults 0 0
----
f.檢測docker是否可用,資料是否完整
[plain] view plain copy
docker images
docker ps -a
g.確認無誤後解除安裝臨時掛載點,刪除/var/lib/docker.bak
[plain] view plain copy
umount /mnt/docker
rm -rf /var/lib/docker.bak
方法三、修改映象和容器的存放路徑
指定映象和容器存放路徑的引數是–graph=/var/lib/docker,我們只需要修改配置檔案指定啟動引數即可。
Docker 的配置檔案可以設定大部分的後臺程序引數,在各個作業系統中的存放位置不一致,在 Ubuntu 中的位置是:/etc/default/docker,在 CentOS 中的位置是:/etc/sysconfig/docker。
如果是 CentOS 則新增下面這行:
OPTIONS=--graph="/root/data/docker" --selinux-enabled -H fd://
如果是 Ubuntu 則新增下面這行(因為 Ubuntu 預設沒開啟 selinux):
OPTIONS=--graph="/root/data/docker" -H fd://
# 或者
DOCKER_OPTS="-g /root/data/docker"
最後重新啟動,Docker 的路徑就改成 /root/data/docker 了。
如果沒有生效,按如下操作
vim /etc/default/docker
新增配置資訊
DOCKER_OPTS="--graph=/home/docker"
儲存退出
service docker restart
發現配置並沒有生效
解決方案:
mkdir -p /etc/systemd/system/docker.service.d
cat /etc/systemd/system/docker.service.d/Using_Environment_File.conf
如果沒有該檔案則自行建立,新增以下內容
[Service]
EnvironmentFile=-/etc/default/docker
ExecStart=
ExecStart=/usr/bin/docker daemon -H fd:// $DOCKER_OPTS
載入配置重啟服務
systemctl daemon-reload
service docker restart
檢視配置是否生效