1秽荞、查看docker和文件系統(tǒng)
Docker的鏡像以及一些數(shù)據(jù)都是在/var/lib/docker目錄下阀蒂,它占用的是Linux的系統(tǒng)分區(qū)驮捍,也就是下面的/dev/vda1,當(dāng)有多個(gè)鏡像時(shí)危虱,/dev/vda1的空間可能不足赫舒,我們可以把docker的數(shù)據(jù)掛載到數(shù)據(jù)盤悍及,例如:/dev/vdb目錄下。
[root@10-10-63-106 docker]# df -lhT
Filesystem Type Size Used Avail Use% Mounted on
/dev/vda1 xfs 20G 3.8G 16G 20% /
devtmpfs devtmpfs 916M 0 916M 0% /dev
tmpfs tmpfs 921M 0 921M 0% /dev/shm
tmpfs tmpfs 921M 43M 878M 5% /run
tmpfs tmpfs 921M 0 921M 0% /sys/fs/cgroup
/dev/vdb xfs 100G 11G 90G 11% /data
2接癌、備份fstab和遷移已有的文件
其中主要的步驟如下:
(1) 首先心赶,備份fstab文件 sudo cp /etc/fstab /etc/fstab.$(date +%Y-%m-%d)
(2) 停止docker, 用rsync同步/var/lib/docker到新位置.
如果rsync沒有安裝缺猛,則使用apt install -y rsync 進(jìn)行安裝缨叫,停止docker ,service docker stop,在數(shù)據(jù)分區(qū)中建立要掛載的目錄,mkdir /data/docker 使用rsync工具同步荔燎,~~rsync -aXS /var/lib/docker/. /data/docker/~~耻姥,這可能需要花費(fèi)的較長(zhǎng)的時(shí)間,取決于/var/lib/docker的大小有咨。
在使用overlay文件系統(tǒng)的Docker上面琐簇,會(huì)出現(xiàn)數(shù)據(jù)快速膨脹的問題。
解決辦法座享,使用下面的方法復(fù)制文件:
** rsync -avPHSX /var/lib/docker /new/partition/**
解釋:
- -a婉商,檔案模式。
- -v渣叛,顯示詳細(xì)信息丈秩。
- -P,顯示進(jìn)度淳衙。
- -H癣籽,處理Hardlink為Hardlink,關(guān)鍵滤祖!
- -S筷狼,稀疏文件優(yōu)化處理。
- -X匠童,保留所有屬性埂材。
3、修改fstab汤求,然后重新掛載
修改fstab 在該文件中把下面一行添加到fstab里俏险,將新位置掛載到 /var/lib/docker /data/docker /var/lib/docker none bind 0 0 文件的內(nèi)如如下:
[root@10-10-63-106 docker]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Thu Jul 31 07:50:13 2014
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/vda1 / xfs errors=remount-ro 0 1
/swapfile none swap defaults 0 0
/dev/vdb /data xfs defaults,noatime 0 0
/data/docker /var/lib/docker none bind 0 0
(4)重新掛載 mount –a
(5)使用下面的命令檢查一下
df
/var/lib/docker/ Filesystem 1K-blocks Used Available Use%
Mounted on /dev/vdb 104806400 47204 104759196 1% /var/lib/docker
(6)進(jìn)入Container查看我們的空間
bash-4.1# df -lhT
Filesystem Type Size Used Avail Use% Mounted on
rootfs rootfs 9.8G 1.4G 7.9G 15% /
tmpfs tmpfs 921M 0 921M 0% /dev
shm tmpfs 64M 0 64M 0% /dev/shm
/dev/vdb xfs 100G 2.1G 98G 3% /etc/resolv.conf
/dev/vdb xfs 100G 2.1G 98G 3% /etc/hostname
/dev/vdb xfs 100G 2.1G 98G 3% /etc/hosts
tmpfs tmpfs 921M 0 921M 0% /run/secrets
tmpfs tmpfs 921M 0 921M 0% /proc/kcore
沒有更改/var/lib/docker路徑之前的情況:
bash-4.1# df -lhT
Filesystem Type Size Used Avail Use% Mounted on
rootfs rootfs 9.8G 1.4G 7.9G 15% /
tmpfs tmpfs 921M 0 921M 0% /dev
shm tmpfs 64M 0 64M 0% /dev/shm
/dev/vda1 xfs 20G 13G 6.9G 66% /etc/resolv.conf
/dev/vda1 xfs 20G 13G 6.9G 66% /etc/hostname
/dev/vda1 xfs 20G 13G 6.9G 66% /etc/hosts
tmpfs tmpfs 921M 0 921M 0% /run/secrets
tmpfs tmpfs 921M 0 921M 0% /proc/kcore
宿主機(jī)中的分區(qū)大小信息:
[root@10-10-63-106 ~]# df -lhT
Filesystem Type Size Used Avail Use% Mounted on
/dev/vda1 xfs 20G 13G 6.9G 65% /
devtmpfs devtmpfs 916M 0 916M 0% /dev
tmpfs tmpfs 921M 0 921M 0% /dev/shm
tmpfs tmpfs 921M 89M 832M 10% /run
tmpfs tmpfs 921M 0 921M 0% /sys/fs/cgroup
/dev/vdb xfs 100G 33M 100G 1% /data
4严拒、總結(jié)一下,搞成個(gè)腳本來執(zhí)行
#備份fstab文件
sudo cp /etc/fstab /etc/fstab.$(date +%Y-%m-%d)
#停止docker
sudo service docker stop
#/data/docker/為目標(biāo)路徑竖独,根據(jù)機(jī)器情況設(shè)定裤唠。
export DOCKER_PATH=/data/docker/
#用rsync同步/var/lib/docker到新位置
rsync -avPHSX /var/lib/docker/. $DOCKER_PATH
echo $DOCKER_PATH /var/lib/docker none bind 0 0 >> /etc/fstab
mount –a
df -h
把上面的保存為腳本,修改里面的路徑莹痢,然后添加執(zhí)行權(quán)限种蘸,執(zhí)行即可。
然后重啟docker(sudo service docker start)竞膳,鏡像存儲(chǔ)就使用新的路徑了航瞭。
掛載新的文件目錄還可以使用軟連接 ln /var/lib/docker /targetpath/docker,或者使用Docker啟動(dòng)參數(shù)-g path來完成坦辟。