docker

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

关于作者

程序员,软件工程师,java, golang, rust, c, python,vue, Springboot, mybatis, mysql,elasticsearch, docker, maven, gcc, linux, ubuntu, centos, axum,llm, paddlepaddle, onlyoffice,minio,银河麒麟,中科方德,rpm