可直接用 docker save 一次性导出多个带标签镜像并管道压缩,如 docker save -q myapp:v1.2 myapp:v1.3 myapp:latest | gzip > myapp-versions.tar.gz,再通过 gunzip -c myapp-versions.tar.gz | docker load 完整还原所有标签及依赖。

直接用 docker save 一次性传入多个镜像名(含不同版本标签),再通过管道交给 gzip,就能生成一个包含全部镜像的压缩包——不用拆分、不丢层、加载时自动还原所有标签和依赖关系。
确认要导出的多版本镜像列表
关联业务常有同一镜像名、不同 tag 的情况(如 myapp:v1.2、myapp:v1.3、myapp:latest)。先筛出来,避免漏掉或混入无关镜像:
- 按仓库名精确匹配所有标签:
docker images myapp --format "{{.Repository}}:{{.Tag}}" - 用
awk提取带前缀的多版本:docker images | awk '$1 == "myapp" {print $1 ":" $2}' - 手动列出更稳妥(尤其 CI/CD 场景):
echo "myapp:v1.2 myapp:v1.3 myapp:latest"
用 docker save + gzip 一步生成压缩包
不建议先生成 tar 再压缩,容易多出中间文件;推荐用管道流式压缩,省空间也省步骤:
MiniMax 图片理解 + 网络搜索 MCP 工具。适配 Docker 环境(极空间等),支持图片 OCR 识别、图像内容理解、网络搜索。API Key 安全存储在本地 credentials 文件,不暴露在代码中。
- 基础写法(推荐):
docker save myapp:v1.2 myapp:v1.3 myapp:latest | gzip > myapp-versions.tar.gz - 加
-q静默输出,避免干扰:docker save -q myapp:v1.2 myapp:v1.3 myapp:latest | gzip > myapp-versions.tar.gz - 如果镜像名含空格或特殊字符,记得加引号:
docker save "myapp:v1.2" "myapp:v1.3" | gzip > myapp-versions.tar.gz
在目标机器上验证并加载
压缩包传过去后,加载非常简单,且会完整还原所有镜像及其原始标签:
- 直接解压加载:
gunzip -c myapp-versions.tar.gz | docker load - 或先解压再加载(适合调试):
gunzip myapp-versions.tar.gz && docker load -i myapp-versions.tar - 加载后检查:
docker images | grep myapp,应看到所有版本标签都存在
注意几个关键细节
导出导入看似简单,但几个点容易出错:
- 架构兼容性:源和目标机器的 CPU 架构需一致(如都是 amd64 或都是 arm64),否则加载失败
- 版本匹配:Docker 版本差异过大时(如 20.x → 26.x),某些元数据字段可能解析异常,建议两边尽量接近
- 不依赖 registry:整个过程离线完成,适合内网、断网或安全审计严格环境
- 别用 export/import:那是导出容器快照,不保留镜像层和历史,无法还原多版本关系










