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

张裕  论坛元老 | 2025-5-10 19:36:06 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1558|帖子 1558|积分 4674

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
一、导出原始镜像

1. 利用 docker save 导出完备镜像

实用场景:保留镜像的全部层、元数据、标签和历史记载,得当迁移或备份完备镜像情况。 操作下令
  1. 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 导出的完备镜像文件,保留全部元数据。 操作下令
  1. docker load -i <导出文件名.tar>
复制代码
示例:docker load -i milvus_backup.tar

导入后镜像名称和标签与原镜像一致,若需重命名,需利用 docker tag 下令:
  1. docker tag <原镜像ID> <新镜像名:新标签>
复制代码
三、利用 docker import 导入容器快照

实用场景:若文件是通过 docker export 导出的容器快照(非完备镜像),需利用此下令导入为镜像。 操作下令
  1. 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)
四、操作流程图

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


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

张裕

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表