引言
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 镜像,导入不会保留容器的元数据,仅包含文件系统内容。以下信息不会保留:
- 环境变量:原容器的环境变量设置不会保存。
- 网络配置:网络相关的配置(如端口映射)将不会保留。
- 挂载点:任何挂载到原容器的卷信息也不会被导入。
- 运行时配置:包括命令、入口点等。
如果要保留元数据咋办,使用 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/
版权声明 © 2024 — Now BOBO BLOG:原创文章受著作权法保护,未经作者书面许可,不得以任何形式复制其内容、摘编、转载,侵权必究。