docker容器镜像等相关文件目录迁移
迁移目的:
默认装在系统盘的,一般云服务器系统盘40G左右很容器就满了,这个时候必须做迁移了
1、以阿里云为例,先购买并挂载一个新的数据盘,参考之前的随笔 https://www.cnblogs.com/cjh-notes/p/10828857.html
本次挂载目录为 /data
再记录一条清理镜像的命令
# 以下命令清除无用的镜像 docker image prune -a -f # 容器因有回滚的需求,只做手动删除!!tips:Rancher的升级会自动清理无用的容器
2、迁移
查看容器数据保存位置 docker info | grep "Docker Root Dir" 停止服务 service docker stop 创建新存放数据的目录 mkdir -p /data/docker/ 安装rsync,rsync能保证迁移的完整性(特别是权限) yum -y install rsync 迁移数据文件 rsync -avzr /var/lib/docker/ /data/docker 修改docker的配置文件重新指向新的数据存放地址,不同docker版本对配置项的支持也是不同的,我这里用的都是17.06.2-ce vi /etc/docker/daemon.json
{
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
],
"data-root": "/data/docker"
}
重新启动
service docker start
确认没问题就把旧的目录清理一下
rm -rf /var/lib/docker/
要是升级了docker版本导致容器起不来,如下图这样的错误
执行以下命令(路径替换成自己新配置的)
grep -rl 'docker-runc' /var/lib/docker/containers/ | xargs sed -i 's/docker-runc/runc/g'
重启服务
service docker restart
转载请注明博客出处:http://www.cnblogs.com/cjh-notes/