菜单

Docker导出和导入 .tar 容器包场景实践

利用 docker export 和 docker import 命令,更方便地管理和部署备份 Docker 容器,提升工作效率。

引言

Docker 日常使用中,难免出现些问题,就像现在,遇到点麻烦事:docker部署的论坛挂掉了,我还无法远程连接服务器,想了想托人帮我把论坛容器打包发给我,转到本地的服务器上看看是啥问题。

当你像我一样需要迁移容器时,或者在灾难恢复自定义镜像跨平台迁移离线部署等场景中,使用docker导出和导入容器,那么会是非常高效、实用的操作,本文就记录下如何使用 Docker 导出和导入 .tar 包。

场景实践

1. 导出前

导出前先查看容器的名称或ID,使用这条命令,查看所有容器的状态(包括停止的容器)。

导出容器前需要停止容器,使用docker stop命令停止容器,括号参数替换为需要停止的容器名称or容器ID

docker ps -a
docker stop  <container_id_or_name>

2. 导出

使用 docker export 命令导出容器,

  • -o <output_path.tar>:指定输出文件的路径和名称。
  • <container_id_or_name>:要导出的容器的 ID 或名称。
docker export <container_id_or_name> -o <output_file>.tar

例如:docker export app -o /root/app.tar

3. 导入

将tar文件传到新的主机上,使用 docker import 命令将导出的 .tar 文件导入为 Docker 镜像,导入不会保留容器的元数据,仅包含文件系统内容。以下信息不会保留:

  1. 环境变量:原容器的环境变量设置不会保存。
  2. 网络配置:网络相关的配置(如端口映射)将不会保留。
  3. 挂载点:任何挂载到原容器的卷信息也不会被导入。
  4. 运行时配置:包括命令、入口点等。

如果要保留元数据咋办,使用 docker commit(提一下)

docker import <input_path.tar> <new_image_name:tag>
  • <input_path.tar>:要导入的 .tar 文件路径。
  • <new_image_name:tag>:导入后镜像的名称和标签。

例如:docker import /root/app.tar app:latest

4. 导入成功

导入成功后,可能会看到类似下面的输出:

sha256:xxxxxxxxxxxxxxxxxxxx

导入 .tar 文件为镜像后,可以使用 docker images 命令查看生成的镜像:

docker images

接下来就可以使用导入的镜像创建新的容器了。

结语

Docker 导出和导入 .tar 包是一种灵活且高效的操作,适用于迁移、备份、恢复、自定义镜像、跨平台迁移和离线部署等多种场景。通过合理利用 docker export 和 docker import 命令,可以更方便地管理和部署 Docker 容器,提升工作效率。


希望这篇文章对你有所帮助!如果你有任何问题或需要进一步的帮助(论坛bbs.soulcloser.com),欢迎留言、分享这篇文章!文章链接:https://www.soulcloser.com/4374/

订阅评论
提醒
guest
0 评论
最新
最旧 最多投票
内联反馈
查看所有评论