docker save 命令可将本地镜像打包为标准 tar 归档,保留所有层、标签、历史和元数据,支持单镜像(-o 指定路径)、多镜像(自动去重共享层)、流式压缩(结合 gzip)及完整性验证(tar -tf 或 docker load -i)。

用 docker save 命令就能把本地镜像打包成标准 tar 归档文件,保留所有层、标签、历史记录和元数据,适合存档、备份或离线迁移。
导出单个镜像到指定 tar 文件
最常用也最稳妥的方式是用 -o 参数明确指定输出路径:
-
docker save -o nginx.tar nginx:alpine -
docker save -o /backup/myapp-v3.2.tar myapp:v3.2
注意目标目录要有写权限,文件名建议带 .tar 后缀,方便识别。
一次导出多个镜像到同一个归档
多个镜像名用空格分隔,Docker 会自动去重共享层,减少体积:
-
docker save -o full-stack.tar nginx:1.21 redis:7.0 python:3.11-slim -
docker save ubuntu:22.04 hello-world:latest > multi-images.tar(不用-o时可用重定向)
导出时直接压缩节省空间
如果镜像较大,可结合 gzip 流式压缩:
-
docker save nginx:alpine redis:alpine | gzip > images.tar.gz -
docker save myapp:v2 | gzip -c > myapp-v2.tar.gz
解压后仍可用 docker load 直接导入,无需先解包。
验证归档内容是否完整
导出后可以快速检查 tar 包里有没有镜像数据:
-
tar -tf nginx.tar | head -n 5(列出前几项,应含manifest.json、version、多层layer.tar) -
docker load -i nginx.tar(试加载,成功即说明归档有效)
归档文件本质是标准 tar,可复制、加密、上传网盘或刻录光盘,长期保存没问题。


















