docker容器迁移实战,不使用commit

1、需求

将公司主服务器上的docker容器整个迁移至另外一台备份服务器上,包含数据与配置。主服务器总共装了20多个容器,如果每个使用commit打包成镜像,非常耗时耗力,所以想出这个方案。

2、迁移方案

  1. 使用rsync命令直接将docker的根目录复制到备份服务器上
  2. 在备份服务器上安装一个docker,修改配置文件与主服务器相同,使之能读到迁移过来的的根目录
  3. 重启备份服务器的docker容器

3、实战

3.1 第一步

关闭备份服务器的防火墙

systemctl stop firewalld && systemctl disable firewalld && systemctl status firewalld

3.2 第二步

找到主服务器的docker根目录,使用rsync命令同步到备份服务器

rsync -az --delete /home/dockerlib/ 192.168.0.100:/home/dockerlib/
-az #归档压缩传输
--delete #删除那些目标位置有,而原始位置没有的文件
/home/dockerlib/ #我的docker服务根目录
192.168.0.100 #备份服务器的IP
/home/dockerlib/ #复制到备份服务器的/home目录下

3.3 第三步

在备份服务器上安装docker

yum install -y yum-utils device-mapper-persistent-data lvm2 \
&& yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo\
&& yum makecache fast \
&& yum -y install docker-ce \

修改配置文件/etc/docker/daemon.json

{
  "data-root":"/home/dockerlib",
  "registry-mirrors": ["https://1e7waog4.mirror.aliyuncs.com"],
  "insecure-registries":["192.168.0.20:5000"]
}
data-root #docker的根目录
registry-mirrors #镜像仓库加速地址
insecure-registries #私有镜像仓库地址

然后重启docker服务

systemctl restart docker && systemctl enable docker

3.4 随机启动一个容器验证

发布了146 篇原创文章 · 获赞 25 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_39680564/article/details/101678361
今日推荐