docker容器全变量保存迁移笔记
侧边栏壁纸
  • 累计撰写 32 篇文章
  • 累计收到 11 条评论

docker容器全变量保存迁移笔记

翔翎
2022-04-06 / 0 评论 / 208 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2022年04月06日,已超过841天没有更新,若内容或图片失效,请留言反馈。

有时候我们需要在一台服务器上部署一个新容器,而这个容器全部重新配置环境特别费时间,正好别的服务器上有配置好环境的同类容器,我们可以偷懒,可以通过copy的方式降低工作量。

本文适用场景之一:青龙容器迁移

  • 先通过命令docker stop container_name暂停要迁移的容器运行,接着进行如下步骤:

  1. 通过命令docker commit 容器名称/容器ID 镜像名:标签号来将当前容器打包成docker镜像(其中镜像名和标签号是我们可以根据自己想法自定义取名);
  2. 如果当前容器有映射目录到宿主机,那么后面还需要将映射目录打包迁移,如果忘记容器是否有映射目录到宿主机,可以通过命令docker inspect mark|grep Mounts -A 20来查看;
  3. 通过命令docker save -o xxx.tar 镜像名:标签号将前面生成的容器镜像打包存储为tar压缩包,示例命令:docker save -o ql1.0.tar ql:1.0,其中的ql1.0.tar是压缩包名称,ql:1.0是镜像名:标签号;
  4. 如果要迁移的容器有映射目录到宿主机,我们将该容器在保存为新镜像时,里面的数据全部会被抛弃,不会保存在新镜像中,所以我们还需要备份映射目录的所有数据;
  5. 通过命令tar czvf my.tar 目录路径来打包映射目录,比如你将容器某目录映射到宿主机的/root/myfile,则对应的打包命令为tar czvf my.tar /root/myfile
  6. 将上面的tar压缩包通过sftp或者其他方法传输到新的服务器上,在新服务器上对备份的目录压缩包通过tar xzvf -C 期望解压缩到的目录路径 my.tar来解压,如tar xzvf -C /root/myfile my.tar
  7. 使用docker load --input命令导入容器镜像,如docker load --input ql1.0.tar
  8. 通过docker run -id --name=容器B -p 8081:8080 -v /usr/local/baseproject:/usr/local/tomcat/webapps --privileged=true 新镜像名:标签号来创建容器,前面命令中的/usr/local/baseproject/usr/local/tomcat/webapps分别是宿主机的映射目录和对应的容器中的目录路径
  9. 至此,容器迁移全部完成。
0

评论 (0)

取消