docker容器迁移
1.以mysql8为例
1.1 首先在服务器01上找到要备份的容器,并使用docker commit 制作新镜像
使用查看要备份的容器id
docker ps -a
#使用docker commit 制作新的镜像
docker commit 容器id 新镜像名
#查看镜像 中是否有自己刚刚制作的镜像
docker images
1.2导出docker镜像为 tar 格式压缩包
#这里如果不指定路径就在 服务器的根目录下
docker save 镜像id > xxx.tar
1.3 使用scp 进行linux服务器之间数据拷贝
scp xxx.tar root@192.168.6.115:/home
1.4 在备份服务器导入压缩包文件
#在服务器02上执行导入命令,导入压缩文件
docker load < xxx.tar
1.5 给镜像重新命名
docker tag 镜像名id 命名的镜像名:版本
1.6 迁移数据文件,运行镜像,创建容器
docker的容器迁移,如果是mysql/sqlserver 这些数据库容器就要自行迁移data数据文件和配置文件,如果是nginx这些则也要迁移nginx.conf 这些配置文件。
找到服务器01容器挂载路径
# 查看容器的详细信息
docker inspect 容器名
找到Mounts 查看 Source和Destinaton
可能有多个
拷贝文件到服务器02 这里将 服务器01上挂载存储文件的 /home/mysql/ (配置的具体路径)文件夹拷贝到 服务器02 上
运行创建容器
docker run --restart=always -v /home/docker/mysql-data/_data:/var/lib/mysql -p 3307:3306 --privileged=true --name mysql8 f9114a650840
-v /home/docker/mysql-data/_data:/var/lib/mysql: 挂载的数据目录
f9114a650840:镜像id