当前位置: 首页 > news >正文

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)

http://www.dtcms.com/a/106599.html

相关文章:

  • AI战略群与星际之门:软银AI投资版图计划深度解析
  • AI辅助下基于ArcGIS Pro的SWAT模型全流程高效建模实践与深度进阶应用
  • deepseek-r1 api部署和镜像
  • OpenCV 图形API(9)用于执行矩阵与标量之间的逐元素除法操作函数divC()
  • 获取oracle表大小
  • 《系统分析师开篇》
  • 电动打气泵方案,多种充气模式的充气泵方案【天吉智芯】
  • 从商汤科技年报,看一家AI企业的确定性叙事
  • 山东港口船货通平台:赋能航运产业升级,构建智慧物流新生态
  • 二分查找算法精讲
  • Mysql 的binlog日志的优缺点
  • 【多通道数据采集系统:汽车测试江湖的“兵器谱”——硬核分类与实战秘籍】
  • 大模型(LLMs)RAG 版面分析——表格识别方法篇
  • 二分类交叉熵以及加权交叉熵
  • 批量删除或替换文本文件中指定的行,如删除第一行、删除最后一行
  • 诠视科技Unity SDK开发环境配置、项目设置、apk打包。
  • 利用空间-运动-回波稀疏性进行5D图像重建,以实现自由呼吸状态下肝脏定量磁共振成像(MRI)的加速采集|文献速递--深度学习医疗AI最新文献
  • 穿透单链表的神秘屏障,洞察数据结构的真谛
  • 瑞萨RA-Eco-RA4M2-100PIN-V1.0MCU使用心得
  • 超级好用的小软件,连接电脑和手机。
  • AI 大模型应用开发实战营-毕业总结
  • SQLSugar单列查询Select和条件查询Where的封装
  • 整点报时时间HTML源码
  • gitee 配置git上传
  • 扫描线离散化线段树解决矩形面积并-洛谷P5490
  • 《电流与电压的誓约》
  • (六)窗口表面
  • 【SPP】蓝牙串口配置中LM互操作性要求深度解析
  • 解决elementui-plus使用el-table的合计功能时横向滚动条显示在了合计上方
  • 基于SpringBoot的河道水情大数据可视化分析平台设计与实现(源码+论文+部署讲解等)