部署、配置记录 - Docker容器迁移
1.备份容器
(1)docker ps 命令查看当前Docker在运行的容器
(2)以下内容以迁移id为“0bcd501d61ed”的容器为例
执行命令 docker commit -p 要迁移的容器id 自定义镜像名称(执行此命令会将容器打包出一个新的镜像,这个名称是新镜像的名称)
此时执行 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是因为打包的文件名称不规范导致的,在下面ps部分补充说明)
附上为镜像改名的命令:
docker tag 镜像id 自定义镜像名称:自定义tag名称
ps: 解决docker load命令后镜像名称和标签名为none的问题:
- 镜像打包时文件命名形式: 自定义镜像名称:ag标签名称.tag (Linux文件名可带冒号)。 - ?我在原服务器将tar包按这样规范命名后,使用xftp软件传输时一直传输失败待解决
- 或者tar包传输到目标服务器后,再修改tar包名为上面的形式。