因公司docker默认会将容器和镜像放在/var/lib/docker目录下,/var基本属性linux的主分区(类似windows的c盘存放了操作系统文件的分区)所以没过多久就占满了。需要转移docker到其他分区
- 确认迁移的目标目录空间是否充足
# 查看分区使用情况
df -lhT
# 查看docker目录当前大小
cd /var/lib/docker
du -h --max-depth=1 ./
占用情况
- 备份 fstab文件
sudo cp /etc/fstab /etc/fstab.$(date +%Y-%m-%d)
- 停止docker服务
service docker stop
- 用rsync同步/var/lib/docker到新位置
rsync -aqXS --progress /var/lib/docker/. /mnt/docker/
- 将备份保存,并创建一个空目录作为挂载点
mv /var/lib/docker/ /var/lib/docker_bak
mkdir /var/lib/docker/
- 通过挂载mount的bind命令将新位置挂载到老位置
mount --bind /mnt/docker /var/lib/docker
mount -a
ls /var/lib/docker/
- 创建开机自动挂载
vim /etc/fstab
# 最后一行添加
/mnt/docker /var/lib/docker none bind 0 0
8.最后重启服务器确认是否成功迁移
备注:在使用overlay文件系统的Docker上面,会出现数据快速膨胀的问题。
解决办法,使用下面的方法复制文件:
rsync -avPHSX /var/lib/docker /new/partition/
解释:
-a,档案模式。
-v,显示详细信息。
-P,显示进度。
-H,处理Hardlink为Hardlink,关键!
-S,稀疏文件优化处理。
-X,保留所有属性。
网友评论