文章目录
docker进行数据迁移
当我们用服务器,使用docker容器进行容器化管理项目时,可能会碰到这样的情况,把一台服务器上docker的容器数据迁移到另外一台服务器上。
比如服务器01上docker管理的mysql,现在因为云服务器到期了,或者要搭建集群之类的,要把整个mysql容器迁移到 服务器02 上。这个时候就涉及到了docker的数据迁移,docker本身也是支持数据迁移的,下面就来具体介绍一下。
环境准备
数据原本存在的linux:服务器01 (以下步骤都叫 服务器01 )
备份的linux:服务器02 (以下步骤都叫 服务器02 )
1 制作docker 镜像
首先在服务器01上找到要备份的容器,并使用docker commit 制作新镜像
如果你备份的是类似于mysql这样的数据库,你的容器名就是你最后的库名(ps:不知道其他容器的情况,大家可以补充一下)
#使用查看要备份的容器id
docker ps -a
#使用docker commit 制作新的镜像
docker commit 容器id 新镜像名
#查看镜像 中是否有自己刚刚制作的镜像
docker images
示例如下:

2 导出docker镜像为 tar 格式压缩包
将服务器01上我们 新做好的镜像导出成 tar 格式的压缩包
#这里如果不指定路径就在 服务器的根目录下
docker save 镜像id > xxx.tar
示例如下:

3.使用scp 进行linux服务器之间数据拷贝
登录到 服务器02 执行 scp 直接可以实现linux 服务器之间的拷贝
#要把 192.168.68.2 opt 下的 mysql_liu.tar 拷贝到本地 opt下
#scp -r root@192.168.68.2:/opt/mysql_liu.tar /opt
scp -r root@服务器01的ip:文件在服务器01的位置 服务器02要保存的文件位置
示例如下:

4 在备份服务器导入压缩包文件
#在服务器02上执行导入命令,导入压缩文件
docker load < xxx.tar
示例如下:

查看导入的镜像

5 给镜像重新命名
docker tag 镜像名id 命名的镜像名:版本

6 迁移数据文件,运行镜像,创建容器
docker的容器迁移,如果是mysql/sqlserver 这些数据库容器就要自行迁移data数据文件和配置文件,如果是nginx这些则也要迁移nginx.conf 这些配置文件。
6.1 找到服务器01容器挂载路径
# 查看容器的详细信息
docker inspect 容器名
示例如下
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aggrn4cv-1667469553451)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1667455168208.png)]](https://i-blog.csdnimg.cn/blog_migrate/ed7f527e4601d512223f55e48ac648b3.png)

6.2 拷贝文件到服务器02
这里将 服务器01上挂载存储文件的 /home/mysql/ 文件夹拷贝到 服务器02 上
6.3 运行创建容器
在服务器02 上运行
#将创建的容器挂载在 从服务器01 上面拷贝过来的 /home/mysql 下的数据上
#-v /home/mysql/conf:/etc/mysql/conf.d 映射配置文件
#-v /home/mysql/log:/var/log/mysql 映射日志
#-v /home/mysql/data:/var/lib/mysql 映射数据
docker run --restart=always -d -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/log:/var/log/mysql -v /home/mysql/data:/var/lib/mysql -p 3310:3306 --name mysql -d mysql_liu:v1
以上便可完成docker的数据迁移工作
本文详细介绍如何使用Docker进行服务器间的数据迁移,包括制作镜像、导出与导入压缩包、使用scp拷贝文件等步骤,并针对MySQL容器进行了具体演示。
1770

被折叠的 条评论
为什么被折叠?



