欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 资讯 > Docker 镜像导出与导入:export/import vs save/load

Docker 镜像导出与导入:export/import vs save/load

2025/4/7 18:20:54 来源:https://blog.csdn.net/weixin_41544125/article/details/146947476  浏览:    关键词:Docker 镜像导出与导入:export/import vs save/load

在使用 Docker 时,我们经常会遇到需要将镜像从一台机器迁移到另一台机器的情况。虽然可以通过 Docker Hub 或其他镜像仓库来实现,但有时出于安全或网络限制,我们需要将镜像保存为本地文件,然后手动拷贝到目标机器上进行导入。Docker 提供了两种主要的镜像导出与导入方式:export/importsave/load。本文将详细介绍这两种方式的使用方法、区别以及适用场景。

一、使用 exportimport

1.1 查看本机的容器

exportimport 是通过容器来导出和导入镜像的。首先,我们需要查看本机上所有容器的列表:

docker ps -a

1.2 导出镜像

使用 docker export 命令可以根据容器 ID 将镜像导出为一个文件。例如:

docker export f299f501774c > hangger_server.tar

执行该命令后,镜像文件 hangger_server.tar 将被保存到当前目录。

1.3 导入镜像

使用 docker import 命令可以将导出的镜像文件导入到本地镜像库中。例如:

docker import - new_hangger_server < hangger_server.tar

执行 docker images 命令可以确认镜像已经成功导入。

二、使用 saveload

2.1 查看本机的镜像

saveload 是通过镜像来保存和加载镜像文件的。首先,我们需要查看本机上所有镜像的列表:

docker images

2.2 保存镜像

使用 docker save 命令可以根据镜像 ID 将镜像保存为一个文件。例如:

docker save 0fdf2b4c26d3 > hangge_server.tar

此外,我们还可以将多个镜像打包到一个文件中:

docker save -o images.tar postgres:9.6 mongo:3.4

2.3 载入镜像

使用 docker load 命令可以将保存的镜像文件载入到本地镜像库中。例如:

docker load < hangge_server.tar

三、两种方案的差别

3.1 文件大小

  • export 导出的镜像文件体积通常小于 save 保存的镜像文件。

3.2 是否可以对镜像重命名

  • docker import 可以为镜像指定新的名称。
  • docker load 不能对载入的镜像重命名。

3.3 是否可以同时将多个镜像打包到一个文件中

  • docker export 不支持将多个镜像打包到一个文件中。
  • docker save 支持将多个镜像打包到一个文件中。

3.4 是否包含镜像历史

  • export 导出(import 导入)的镜像是根据容器的当前状态生成的,会丢失镜像的所有历史记录和元数据信息,因此无法进行回滚操作。
  • save 保存(load 加载)的镜像保留了镜像的完整历史记录,可以回滚到之前的层(layer)。

3.5 适用场景

  • docker export 的适用场景
    • 主要用于制作基础镜像。例如,从一个基础镜像(如 Ubuntu)启动一个容器,安装一些软件并进行配置后,使用 docker export 保存为一个基础镜像,然后分发给其他人使用。
  • docker save 的适用场景
    • 适用于需要将多个镜像打包并迁移到其他机器的情况。例如,在使用 docker-compose 编排多个镜像时,可以将所有相关镜像打包成一个文件,然后在目标机器上使用 docker load 载入。

四、总结

Docker 提供了两种镜像导出与导入的方式:export/importsave/loadexport/import 适用于制作基础镜像,而 save/load 适用于迁移包含多个镜像的应用。在选择使用哪种方式时,需要根据具体需求考虑文件大小、是否需要保留镜像历史等因素。

希望本文对你有所帮助!如果还有其他问题,欢迎留言交流。


原文链接:Docker - 实现本地镜像的导出、导入(export、import、save、load)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词