最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
怎样使用 docker save 同步打包多个关联业务镜像指南
时间:2026-07-22 08:53:48 编辑:袖梨 来源:一聚教程网
用docker save一次传入多个镜像名可合并打包为单个tar文件,确保依赖关系完整;支持筛选命令动态生成镜像列表、加引号处理特殊字符、管道压缩节省体积,并可用docker load直接加载验证。
直接用 docker save 一次传入多个镜像名,就能把它们合并打包进同一个 tar 文件——这是最常用、最稳妥的同步打包方式,不需要额外脚本或中间步骤。
确认要打包的镜像列表
关联业务镜像通常有共同特征,比如相同前缀、同一仓库名,或属于同一项目。先用 docker images 筛出它们,确保不漏、不混:
- 查所有带
api-前缀的镜像:docker images | awk '$1 ~ /^api-/ {print $1 ":" $2}' - 查指定仓库下的全部标签(如
myapp):docker images myapp --format "{{.Repository}}:{{.Tag}}" - 查已知镜像 ID 列表(适合 CI/CD 中固化清单):
echo "abc123 def456 ghi789"
用 docker save 合并导出为单个 tar 文件
这是“同步打包”的核心操作:所有镜像层和元数据被打包进一个归档,加载时自动还原全部镜像及原始标签,保证业务镜像间依赖关系完整保留。
- 基础写法(推荐加
-o明确输出路径):docker save -o business-images.tar api-gateway:1.2 nginx:alpine redis:7.2 - 结合筛选命令一键打包:
docker save -o business.tar $(docker images | awk '$1 ~ /^api-/ || $1 ~ /^db-/ {print $1 ":" $2}') - 含空格或特殊字符时加引号更安全:
docker save -o full-bundle.tar "api/auth:v2" "db/postgres:15"
可选:压缩归档节省传输体积
如果用于离线分发或带宽受限环境,直接管道压缩,不生成中间文件:
- gzip 压缩:
docker save api-gateway:1.2 db/postgres:15 | gzip > business.tgz - zstd 压缩(更快更小,需系统安装 zstd):
docker save api-gateway:1.2 db/postgres:15 | zstd -T0 -o business.zst
注意:压缩后仍可用 docker load < business.tgz 直接加载,Docker 自动识别格式。
验证与加载建议
打包完成后建议快速验证,避免传输或加载失败:
- 检查 tar 内容(不展开):
tar -tf business-images.tar | head -n 5 - 在目标机加载:
docker load -i business-images.tar或docker load < business.tgz - 加载后核对镜像是否存在且标签正确:
docker images | grep -E "(api|db)"
只要源镜像存在且未被删除,导出包就包含全部层和配置,加载后完全等价于原环境中的镜像状态。
相关文章
- 纸箱尺寸计算公式:详解 07-28
- zk助手如何设置悬浮显示 zk助手设置悬浮显示方法 07-28
- 纸箱尺寸计算公式解读 07-28
- 纸箱的十种创意妙用 07-28
- 纸箱妙用手册 07-28
- 宝燕儿童乐园 游玩指南 07-28