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/

posted on 2020-01-15 17:44  代码风云  阅读(1136)  评论(0编辑  收藏  举报

导航