docker save 命令将本地镜像打包为 tar 文件,保留所有层、标签和历史记录,支持单镜像导出(-o 参数)、多镜像合并归档、标准输出重定向压缩或远程传输,导出后可通过 tar 查看内容或 docker load 验证。

用 docker save 命令导出镜像,核心是把本地已有的镜像打包成一个 tar 文件,保留所有层、标签和历史记录,适合备份、离线迁移或跨机器分发。
导出单个镜像到指定文件
最常用的方式是用 -o 参数指定输出路径:
-
docker save -o nginx.tar nginx:alpine—— 把nginx:alpine镜像保存为当前目录下的nginx.tar -
docker save -o /tmp/myapp.tar myapp:v2.1—— 输出到指定目录,注意目标路径需有写权限
一次导出多个镜像到同一个归档
多个镜像名用空格隔开,Docker 自动去重共享层,节省空间:
docker save -o full-stack.tar nginx:latest redis:7.2 alpine:3.20- 导入时会恢复所有镜像及其原始标签,不需额外操作
不加 -o:用重定向或管道灵活处理
省略 -o 时,输出直接到标准输出,方便配合压缩或传输:
-
docker save ubuntu:22.04 > ubuntu.tar—— 等价于加-o,但更易理解 -
docker save nginx:alpine | gzip > nginx.tar.gz—— 边打包边压缩,减小体积 -
docker save redis:7 | ssh user@host "docker load"—— 直接网络传输加载,不落地文件
验证导出是否成功
导出后建议快速确认文件可用性:
- 检查文件是否存在且大小合理:
ls -lh nginx.tar(几百 KB 到几 GB 视镜像而定) - 查看归档内容:
tar -tf nginx.tar | head -5(能看到 manifest.json 和 layer 文件) - 在目标机器上测试加载:
docker load -i nginx.tar,再运行docker images确认镜像已存在











