docker容器迁移教程
前言
被领导要求部署一个和测试环境一样的演示环境,并且数据库也要同步过去,服务器上的各种服务都是docker部署的,由于之前docker玩的比较少,所以还是踩了不少坑的,在此记录一下正确的操作方法。
正文
1.容器镜像导出
- 我们先通过
docker images
查看需要导出的镜像
- 然后我们使用镜像导出命令
1 |
|
- 例如我需要备份nginx镜像:
1 |
|
备份完成之后可以在目录下查看到这个备份文件
2.备份文件迁移
- 迁移文件可以使用u盘传输,当然用u盘转移时间显然很慢,我们何不直接在两台服务器之间进行传输?如果再局域网的情况下传输速度会非常快,这里我们使用scp指令去复制备份文件:
1 |
|
- 在我们需要迁移的目标机器上执行指令
1 |
|
- 回车之后会提示是否输入密码,先yes然后输入密码,输入一下root密码即可,如果你是非root用户,可能要注意下文件权限问题
3.镜像备份文件读取
- 使用docker load载入镜像
1 |
|
- 等待读条完毕,使用
docker images
查看是否导入成功,导入成功即可根据镜像创建容器并运行。
4.容器挂载目录的转移和配置
4.1 方案1
- 如果在原服务器的容器中配置了挂载目录,可以用第2步的方法,将挂载目录转移至新服务器。
- 可以使用以下命令查看挂载目录的映射关系
1 |
|
- 我们查看输出的Mounts数组中的挂载信息,我们可以在此查看挂载的目录和对应容器目录
- 在新服务器上启动容器时可以根据挂载信息添加-v参数,
4.2 方案2(推荐)
如果觉得重新写启动命令很麻烦,可以使用runlike把容器启动命令直接复制过去,方法如下
- 安装pip工具包和runlike
1
2
3
4
5#安装pip3
yum install python3
yum install python3-pip
#安装runlike
pip3 install runlike- 使用该命令即可查看启动命令,非常方便
1
runlike -p 容器名
参考文章:
docker容器迁移教程
https://aunero.github.io/2022/06/docker-container-move.html