隔离网络的标准搬运流程
在不能访问外部镜像仓库的环境里交付镜像,标准做法是五个步骤:源端 save 导出、压缩、计算校验值、介质传输、目标端校验后 load。整个链路不依赖网络仓库,但要求源端与目标端架构一致,且每一步都要留下可核对的产物与校验记录,否则一旦传输出错,很难判断是归档损坏还是导入方式不对。
基本信息
| 流程 | save → 压缩 → 校验 → 传输 → load |
|---|---|
| 校验工具 | sha256sum(生成 .sha256 文件并核对) |
| 压缩 | gzip 或 zstd,配合管道直接落盘 |
| 前提 | 源机与目标机镜像架构一致 |
典型使用场景
- 生产内网交付:从有网环境搬到隔离环境,全程凭介质传递
- 审计留痕:归档与校验值成对保存,交付记录可追溯
- 大包分片传输:超大镜像先压缩再分卷,减少介质往返次数
- 版本回退准备:交付前把上一个可用版本的归档留在目标机本地
- 批量分发包:一套归档发给多个目标环境,逐个校验后导入
从导出到导入
从导出到导入
# 源端:导出并压缩,随后生成校验值
docker save app/web:1.4.2 | gzip > web-1.4.2.tgz
sha256sum web-1.4.2.tgz | tee web-1.4.2.sha256
# 记录镜像摘要,便于核对导入内容
docker images --digests app/web:1.4.2
# 目标端:先校验,通过后再导入
sha256sum -c web-1.4.2.sha256
gunzip -c web-1.4.2.tgz | docker load
# 导入后核对标签与摘要
docker images --digests app/web步骤与检查点
| 步骤 | 命令 | 检查点 |
|---|---|---|
| 导出 | docker save -o 或管道到 gzip | 确认镜像标签完整、磁盘有余量 |
| 校验 | sha256sum 生成并核对 | 两侧校验值一致才继续 |
| 导入 | docker load 或管道导入 | 看到 Loaded image 与标签输出 |
| 复盘 | docker images --digests | 标签与摘要和交付记录一致 |
源机与目标机架构要一致;跨架构交付需在源端分别构建对应平台的镜像,归档本身不做架构转换。
单向导入的场景应保留归档与校验值,后续复现或审计时不必重新从源端导出,这是最省成本的追溯方式。