docker save命令用于将一个或多个Docker镜像保存为tar归档文件,保留所有层、标签和元数据,支持离线传输、备份及跨主机迁移;可用-o指定输出路径或重定向至stdout。

docker save 命令用于将一个或多个 Docker 镜像保存为 tar 归档文件(不带压缩),方便离线传输、备份或在无网络环境加载。
基本用法:导出单个镜像
语法:
docker save -o 输出文件名.tar 镜像名[:标签]
例如,把本地已有的 nginx:alpine 镜像导出为 nginx-alpine.tar:
- docker save -o nginx-alpine.tar nginx:alpine
执行后会在当前目录生成一个未压缩的 tar 文件,可用 tar -tf nginx-alpine.tar 查看内容(含镜像元数据和分层文件系统)。
导出多个镜像到同一个归档文件
只需在命令末尾列出多个镜像名(用空格分隔):
- docker save -o my-images.tar nginx:alpine redis:7 alpine:3.20
注意:所有指定镜像及其依赖层会被合并打包进一个 tar 文件中,不会重复存储共享层。
不加 -o 参数时的输出方式
省略 -o 时,docker save 默认将归档内容输出到标准输出(stdout),可配合重定向或管道使用:
- docker save nginx:alpine > nginx.tar
- docker save ubuntu:22.04 | gzip > ubuntu.tar.gz(配合 gzip 压缩)
⚠️ 注意:直接重定向比 -o 更灵活,尤其适合管道处理;但若镜像较大,建议用 -o 避免缓冲问题。
验证与后续使用
导出后可通过以下方式确认是否成功:
- 检查文件是否存在且大小合理:
ls -lh nginx-alpine.tar - 查看归档结构:
tar -tzf nginx-alpine.tar | head -10(若已 gzip 压缩)或tar -tf nginx-alpine.tar | head -10 - 在另一台机器上导入:
docker load -i nginx-alpine.tar
导入后可用 docker images 查看镜像是否已存在。


















