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

docker 镜像的导出和导入(导出完整镜像和导出容器快照)

一、导出原始镜像

1. 使用 docker save 导出完整镜像

适用场景:保留镜像的所有层、元数据、标签和历史记录,适合迁移或备份完整镜像环境。 操作命令

docker save -o <导出文件名.tar> <镜像名:标签>

示例:docker save -o milvus_backup.tar milvusdb/milvus:v2.5.6

参数说明

  • -o:指定导出的文件名,如 milvus_backup.tar
  • <镜像名:标签>:需导出的镜像名称及标签(如 milvusdb/milvus:v2.5.6)。

扩展功能

  • 导出多个镜像docker save -o combined.tar image1:tag1 image2:tag2
  • 压缩导出文件docker save image:tag | gzip > image.tar.gz 

    二、导入镜像

  • 1. 使用 docker load 导入完整镜像

适用场景:导入通过 docker save 导出的完整镜像文件,保留所有元数据。 操作命令

docker load -i <导出文件名.tar>

示例:docker load -i milvus_backup.tar

导入后镜像名称和标签与原镜像一致,若需重命名,需使用 docker tag 命令:

docker tag <原镜像ID> <新镜像名:新标签>

三、使用 docker import 导入容器快照

适用场景:若文件是通过 docker export 导出的容器快照(非完整镜像),需使用此命令导入为镜像。 操作命令

docker import <快照文件.tar> <新镜像名:标签>

示例:docker import milvus_snapshot.tar milvus_custom:v2.5.6

不保留历史层和元数据(如环境变量、启动命令),需手动指定启动参数 。
可添加元数据:docker import -c "ENV LANG=en_US.UTF-8" snapshot.tar image:tag 

四、关键区别与注意事项

1. docker save/load   vs docker export/import
特性docker save/loaddocker export/import
数据类型完整镜像(含所有层和元数据)容器快照(仅文件系统状态)
保留历史层
适用场景迁移、备份完整镜像快速创建镜像或恢复容器状态
文件生成方式docker savedocker export

 

2. 常见问题排查
  • 导入失败

    • 文件类型不匹配:确认文件是 docker save 生成(用 docker load)还是 docker export 生成(用 docker import) 。
    • 文件损坏:校验文件完整性(如 md5sum),重新导出或传输文件。
    • 存储空间不足:检查 Docker 存储路径 /var/lib/docker 的剩余空间,必要时迁移存储目录。
  • 权限问题:确保当前用户对导出文件有读取权限(chmod +r file.tar

四、操作流程图

导出镜像 → docker save → 生成.tar文件 → 传输到目标环境 → docker load → 导入镜像 → docker tag重命名导出容器 → docker export → 生成.tar文件 → docker import → 生成新镜像(需补充元数据)

http://www.xdnf.cn/news/4951.html

相关文章:

  • Java 匿名内部类的作用
  • IM系统群消息推送方案
  • 多模型协同预测在风机故障预测的应用(demo)
  • 订阅“科技爱好者周刊”,每周五与你相约科技前沿!
  • Docker下Gogs设置Webhook推送Spug,踩坑记录与解决方案
  • Git clone时出现SSL certificate problem unable to get local issuer certificate
  • 安装docker
  • 【网络编程】四、守护进程实现 前后台作业 会话与进程组
  • ChatTempMail - AI驱动的免费临时邮箱服务
  • 线程中常用的方法
  • PX4开始之旅(二)通过自定义 MAVLink 消息与 QGroundControl (QGC) 通信
  • 开源数字人框架 AWESOME - DIGITAL - HUMAN:技术革新与行业标杆价值剖析
  • AWS IoT Core与MSK集成实战:打造高可靠实时IoT数据管道
  • 探索表访问方法功能:顺序扫描分析
  • 复合机器人案例启示:富唯智能如何以模块化创新引领工业自动化新标杆
  • Oracle版本、补丁及升级(12)——版本体系
  • [C#] async和await(腾讯元宝)
  • 从逻辑学视角理解统计学在数据挖掘中的作用
  • 数据结构-堆
  • C++中static关键字详解:不同情况下的使用方式
  • 谷云科技iPaaS发布 MCP Server加速业务系统API 跨入 MCP 时代
  • JAVA将一个同步方法改为异步执行
  • CAN转ModbusTCP网关:破解电池生产线设备协议壁垒,实现全链路智能互联
  • 单调栈所有模版类型(4)
  • 为特定领域微调嵌入模型:打造专属的自然语言处理利器
  • 钉钉打卡教程
  • Go Modules 的基本使用
  • 什么是直播美颜SDK?跨平台安卓、iOS美颜SDK开发实战详解
  • 排序算法-希尔排序
  • 操作系统面试问题(4)