docker save 命令用于将一个或多个本地镜像导出为 tar 归档文件,保留所有层、标签和元数据,支持通过 -o 选项指定输出路径或重定向输出,可打包多镜像自动去重,导出后可用 docker load -i 加载。

Docker 的 save 命令用于将一个或多个镜像导出为 tar 归档文件(不是自动压缩的 zip 或 gzip 包),它本身不执行压缩,但输出的 tar 文件可后续用 gzip 等工具压缩。
save 基本用法:导出单个镜像为 tar 文件
命令格式:docker save -o 输出文件名.tar 镜像名[:标签]
例如,把本地的 nginx:alpine 镜像保存为 nginx.tar:
docker save -o nginx.tar nginx:alpine- 执行后会在当前目录生成
nginx.tar,大小通常和镜像实际层数据一致 - 注意:
-o表示输出到文件;不加-o会直接输出到标准输出(stdout),需配合重定向如> nginx.tar
一次保存多个镜像
可以同时指定多个镜像名,它们会被打包进同一个 tar 文件中:
docker save -o web-app.tar nginx:alpine httpd:2.4 ubuntu:22.04- 这样导出的 tar 包包含所有指定镜像及其共用层,不会重复存储相同 layer
- 适合批量迁移或离线分发一组关联镜像
配合 gzip 实现“压缩包”效果
虽然 docker save 不内置压缩,但常用管道方式直接生成 .tar.gz:
docker save nginx:alpine | gzip > nginx.tar.gz- 这样生成的是压缩后的归档,体积显著减小,也更便于传输或存档
- 解压还原时先 gunzip 再 load:
gunzip -c nginx.tar.gz | docker load
验证与加载 tar 包
导出后建议验证是否可用:
- 查看 tar 内容(不推荐解压,可用
tar -tf nginx.tar | head粗略检查) - 用
docker load加载测试:docker load -i nginx.tar - 成功后运行
docker images应能看到对应镜像











