首页/云/Docker 容器速查/docker load 导入镜像归档
镜像与构建107 条

docker load 导入镜像归档

从 docker save 生成的 tar 载入镜像:-i 指定文件、-q 静默输出;还原后标签与镜像 ID 均与导出源一致。

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

docker load 是什么

load 把用 docker save 生成的归档导入本地镜像库,还原出带标签与分层信息的镜像,镜像 ID 与导出源一致,因此常用来校验搬运过程是否完整。它与 import 的根本差别在于来源与结果:load 面向镜像归档,保留层结构与配置;import 面向容器文件系统快照,导入后只有一层内容,需要自己补启动配置。两者不可互相替代。

基本信息

语法docker load -i 文件.tar 或 docker load < 文件.tar
静默模式-q 只输出结果不打印各层进度
压缩归档gunzip -c 文件.tar.gz | docker load
还原内容各层、标签、镜像配置与构建历史
与 import 区别import 只产生扁平文件系统镜像,丢弃历史
磁盘要求解压后的占用大于归档文件本身,load 前确认余量

典型使用场景

  • 离线环境部署:把外网导出的归档在内网机器上还原
  • 交付校验:目标机上 load 后用镜像 ID 与来源比对,确认文件未损坏
  • 批量迁移:一次 load 多个镜像的合并归档,逐个确认标签
  • 回滚准备:把历史版本归档留存,需要时快速还原
  • 多节点分发:在每台节点上分别 load 同一份归档

导入与核对

导入与核对
# 常规导入并查看过程
docker load -i app-web-1.0.tar

# 压缩包直接管道导入
gunzip -c app-web-1.0.tar.gz | docker load

# 静默导入:脚本里更清爽,便于只看结果
docker load -q -i app-web-1.0.tar

# 核对结果:标签、镜像 ID、摘要都应与导出源一致
docker images --format '{{.Repository}}:{{.Tag}} {{.ID}} {{.Size}}' app/web
docker image inspect app/web:1.0 --format '{{index .RepoDigests 0}}'

# 磁盘余量不足时的提示最直观
df -h /var/lib/docker

常见提示判读

提示或现象含义处理方向
Loaded image: 仓库:标签导入成功并恢复标签继续用镜像 ID 做核对
no space left on device目标盘空间不足清理悬空镜像或扩容后重试
open 文件: no such file路径写错或文件未传完确认文件名与传输完整性
invalid tar header归档损坏或传了一半重新导出或重新传输
导入后无标签(<none>)归档来自无标签镜像按需补打标签
load 会新增镜像记录,不会替换正在运行的容器所使用的镜像:运行中的容器仍指向旧镜像 ID,需要重建容器才会用上新导入的内容。
归档保留分层结构,因此导入后的镜像也可以正常参与后续构建的缓存比较;这与 import 得到的单层镜像行为差别明显。

易错点

  • 报磁盘空间不足时误判为文件损坏,实际是解压占用的空间大于归档本身,先看剩余容量
  • load 新版本不会更换正在运行容器的镜像引用,重建容器后才生效,容易被误认为导入没成功
  • 把 save 归档与 export 快照混用:export 产物交给 load 会解析失败,反之 import 能接受但会丢失分层信息
  • 离线交付未在干净环境实测导入,到现场才发现归档损坏或缺标签,交付前应做一次完整演练

数据来源与参考

  • Docker 官方 CLI 参考:docker image load(docs.docker.com)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌