docker load命令详解
docker load 用于从 归档文件(.tar 或 .tar.gz) 中加载 Docker 镜像到本地镜像库。它通常与 docker save 配合使用,实现镜像的离线迁移或备份恢复。save命令和load命令 是对镜像的迁移和备份恢复,只要镜像没有问题,可以随处使用
1. 命令语法
docker load [OPTIONS] < input.tar
或
docker load -i input.tar
参数说明
| 参数 | 说明 |
|---|---|
-i / --input |
指定输入的 .tar 文件路径(替代 < 重定向)。 |
-q / --quiet |
静默模式(不输出加载详情)。 |
< input.tar |
使用 Shell 重定向加载 .tar 文件(与 -i 二选一)。 |
2. 使用示例
(1) 从 .tar 文件加载镜像
docker load -i alpine.tar
或
docker load < alpine.tar
-
从
alpine.tar中加载镜像到本地。
(2) 从压缩文件加载(如 .tar.gz)
gunzip -c alpine.tar.gz | docker load
-
解压并加载
.tar.gz文件。
(3) 静默模式加载
docker load -q -i images.tar
-
不显示加载过程中的层信息。
3. 关键特性
(1) 恢复完整镜像结构
-
加载的镜像会保留原始的所有层(Layers)、标签(Tags)和元数据。
-
支持多镜像归档文件(如通过
docker save打包的多个镜像)。
(2) 与 docker save 配合使用
-
保存镜像:
docker save -o my-images.tar nginx:latest redis:6.0 -
加载镜像:
docker load -i my-images.tar
(3) 加载后查看镜像
docker images # 查看已加载的镜像
4. 常见问题
Q1: docker load 和 docker import 的区别?
| 命令 | 输入文件来源 | 输出对象 | 保留元数据 |
|---|---|---|---|
docker load |
docker save 生成的镜像归档文件 |
镜像(含完整层) | 是(标签、历史记录等) |
docker import |
容器快照或普通 .tar 文件 |
新镜像(单层) | 否 |
Q2: 加载后镜像没有标签(<none>)怎么办?
-
原因:原始
.tar文件中未包含标签信息。 -
手动打标签:
docker tag <镜像ID> nginx:latest
Q3: 加载失败的可能原因?
-
文件损坏:验证
.tar文件完整性。tar -tf alpine.tar # 检查文件内容 -
存储空间不足:
docker system df # 查看 Docker 存储使用情况
5. 实际应用场景
(1) 离线环境部署镜像
-
在有网络的机器上打包镜像:
docker save -o offline.tar nginx:latest -
将
offline.tar复制到离线机器。 -
在离线机器上加载:
docker load -i offline.tar
(2) 从备份恢复镜像
docker load -i backup-2023.tar
(3) 批量加载多个镜像
docker load -i all-images.tar
docker images # 查看已加载的镜像
6. 总结
| 场景 | 命令示例 | |
|---|---|---|
| 加载单个镜像文件 | docker load -i image.tar |
|
| 从压缩文件加载 | `gunzip -c image.tar.gz | docker load` |
| 静默模式加载 | docker load -q -i image.tar |
|
| 加载后打标签 | docker tag <镜像ID> my-image:1.0 |
关键点:
-
docker load是docker save的逆操作,用于恢复镜像。 -
保留镜像的完整结构和历史记录。
-
适用于离线环境或镜像迁移。
郭慕荣博客园

浙公网安备 33010602011771号