首页/云/云与容器速查/docker load 导入镜像
容器与 Docker106 条

docker load 导入镜像

从 tar 文件导入镜像(与 save 配对):内网/离线环境部署的标准动作;导入后可正常 run 或重新 tag/push。

云与容器速查云更新于 2026-10-13

导入 tar 镜像的通道

docker load 从 tar 归档导入镜像,与 docker save 配对使用,是内网、隔离网与离线交付场景的标准搬运方式。导入会还原镜像名称、标签与全部层结构,导入后即可 docker run、重新 tag 或 push 到私有仓库。它与 docker import 不是一回事:import 导入的是一份文件系统快照,生成单层镜像且没有历史与启动配置,行为与原镜像并不等价。

基本信息

语法docker load -i app.tar 或 cat app.tar | docker load
还原内容镜像名、标签、全部层与镜像元数据
不还原容器、卷、网络配置——这些不属于镜像
压缩save 产出的是 tar,可再经 gzip 压缩减小体积,用管道直接导入
验证docker images 核对标签,docker history 确认层结构
权限需要访问本机 Docker 守护进程的用户权限

典型使用场景

  • 内网或隔离网络部署:节点无法访问公网镜像仓库,只能走 tar 包
  • 交付到客户现场:镜像与 compose 文件打包一起交付并现场导入
  • 跨机房迁移:仓库暂时不可用时用 tar 做一次性搬运
  • 版本留存:把上线过的镜像固定成 tar 归档,回滚时无需依赖仓库
  • 离线审计场景:先校验哈希再导入,确保镜像内容与审批版本一致

导出、校验与导入

导出、校验与导入
docker save -o myapp-1.0.0.tar myapp:1.0.0      # 配对的导出动作
gzip -1 myapp-1.0.0.tar                        # 压缩体积,便于跨网传输
sha256sum myapp-1.0.0.tar.gz                   # 记录或核对哈希,验证完整性
gzip -dc myapp-1.0.0.tar.gz | docker load      # 压缩包直接管道导入
docker load -i myapp-1.0.0.tar | tee load.log  # 保存导入输出,便于事后核对
docker images | grep myapp                     # 核对标签与实际镜像 ID

导入输出读法

输出内容含义需要注意
Loaded image: myapp:1.0.0带标签的镜像导入成功核对标签是否与预期一致,尤其带环境后缀时
Loaded image ID: sha256:...只导入了镜像 ID,tar 内没有标签信息常见于 import 产物或 save 时未指定 tag,需要手工补标签
<none> 悬空镜像同名同标签被新导入内容顶替回滚依赖该标签时会拿不到旧版本
层复用提示部分层已存在,直接复用导入很快不代表没有变化,仍要以镜像 ID 为准
跨机器搬运还有一条直达路径:docker save IMAGE | ssh user@host docker load,省去中间落盘,适合网络可达但仓库不可用的场景。多节点部署则应改用 Harbor 等私有仓库,逐台 load 无法保证版本一致。
离线 tar 是不经过仓库校验的通道。导入前务必校验 sha256 与来源,被篡改的 tar 会被直接当作可信镜像进入生产环境,后续很难通过镜像扫描追查。

易错点

  • 同名同标签导入:旧镜像标签被顶成悬空镜像,需要回滚时发现原版本已经找不到
  • 导入不校验来源与哈希:被替换过的 tar 直接进生产,且没有仓库侧的审计记录
  • 用 docker import 替代 docker load,得到的是单层无历史的文件系统快照,缺少 ENTRYPOINT/CMD 与标签,运行行为与原镜像不同
  • 多节点部署靠逐台 load 维持一致:节点越多版本漂移越严重,应改用私有仓库统一分发

数据来源与参考

  • Docker Docs:docker load

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌