镜像导入导出
约 601 字大约 2 分钟
布欧-Lewyon
2026-05-15
首页 › Docker › 镜像管理(在新窗口打开) › 镜像导入导出
在没有网络的环境中传输 Docker 镜像,或者备份重要镜像,可以通过 docker save 和 docker load 实现。
docker save 导出镜像
# 导出单个镜像为 tar 文件
docker save -o nginx.tar nginx:alpine
# 等价写法
docker save nginx:alpine > nginx.tar
# 导出多个镜像到同一个文件
docker save -o images.tar nginx:alpine redis:alpine
# 查看 tar 文件大小
ls -lh nginx.tardocker load 导入镜像
# 从 tar 文件导入
docker load -i nginx.tar
# 等价写法
docker load < nginx.tar
# 导入后验证
docker images | grep nginx传输场景
save/load 与 export/import 的区别
Docker 提供两对命令,容易混淆:
| 命令 | 作用 | 是否保留元数据 | 适合场景 |
|---|---|---|---|
docker save → load | 导出/导入镜像(含分层和历史) | ✅ 保留 | 镜像分发、备份 |
docker export → import | 导出/导入容器文件系统 | ❌ 丢失 | 快照容器文件系统 |
# export/import 示例(不保留 CMD/ENV 等元数据)
docker export my-container > container.tar
cat container.tar | docker import - myimage:snapshot日常镜像传输始终使用
save/load。export/import只在特殊场景(如从故障容器恢复文件)才有意义。
压缩传输
# 导出后压缩
docker save nginx:alpine | gzip > nginx.tar.gz
# 解压后导入
gunzip -c nginx.tar.gz | docker load
# 一行完成
docker save nginx:alpine | gzip | ssh user@host "gunzip | docker load"镜像仓库 vs 文件传输
| 方式 | 优点 | 缺点 |
|---|---|---|
docker push / pull | 增量传输、支持版本管理 | 需要网络和 Registry |
docker save / load | 离线可用、简单直接 | 全量传输、大文件 |
查看 tar 内容
# 查看 tar 文件中的镜像信息
tar -tf nginx.tar
# manifest.json 记录了镜像的标签和层信息
tar -xf nginx.tar manifest.json -O | python -m json.tool小结
docker save -o file.tar image导出为 tar 文件;docker load -i file.tar导入。save/load保留镜像所有元数据(分层、CMD、ENV),适用于镜像分发和备份。export/import操作容器文件系统,不保留元数据。- 无网络环境通过 tar 文件 + U盘/scp 传输,或通过管道直接跨主机传输。
- 配合 gzip 压缩可减小传输体积。
