部署或配置记录 - Docker容器迁移

1.备份容器
(1)docker ps 命令查看当前Docker在运行的容器

在这里插入图片描述
(2)以下内容以迁移id为“0bcd501d61ed”的容器为例
执行命令 docker commit -p 要迁移的容器id 自定义镜像名称(执行此命令会将容器打包出一个新的镜像,这个名称是新镜像的名称)
-p参数:容器暂停运行

在这里插入图片描述
此时执行 docker images 命令可以看到新镜像
在这里插入图片描述

2.打包镜像

我在这里是将镜像打包成tar包,然后通过文件传输把tar包传输到新的服务器上进行恢复从而完成迁移。

还有一种是直接将新镜像push上注册中心,然后新服务器直接拉就行了。(这种还没有尝试过)

(1)执行 docker save -o 目标文件夹路径/自定义文件名称 镜像名称或id
将镜像打包到目标文件夹(目标文件夹记得提前创建)

在这里插入图片描述
(2)通过文件传输把tar包传输到目标服务器某路径(我放在~/docker_backup下)

3.加载镜像

(1)在目标服务器执行 docker load -i tar包所在文件夹路径(我放在了~/docker_backup下) 命令加载镜像

在这里插入图片描述

(2)此时执行 docker images 命令会发现Docker中多了一个名为none的镜像,这个就是刚刚加载的迁移过来的镜像。(名为none是因为打包的文件名称不规范导致的 - 2020.9.2更新:后来发现不是这个问题。是因为:
正确:docker save repository:tag -o repository.tar
错误:docker save IMAGE ID -o repository.tar(会导致载入镜像后名字标签都为none)
,在下面ps部分补充说明)
在这里插入图片描述
附上为镜像改名的命令:
docker tag 镜像id 自定义镜像名称:自定义tag名称

在这里插入图片描述
ps: 解决docker load命令后镜像名称和标签名为none的问题:

  1. 镜像打包时文件命名形式: 自定义镜像名称:ag标签名称.tag (Linux文件名可带冒号)。 - ?我在原服务器将tar包按这样规范命名后,使用xftp软件传输时一直传输失败待解决
  2. 或者tar包传输到目标服务器后,再修改tar包名为上面的形式。
  3. 以上方法解决不了 执行 ‘docker tag 镜像id 镜像名称:tag名称 ’修改吧😂

2020.9.2更新:
正确:docker save repository:tag -o repository.tar
错误:docker save IMAGE ID -o repository.tar(会导致载入镜像后名字标签都为none)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值