docker image save

描述

将一个或多个镜像保存成一个 tar 格式的归档 (archive),默认是将其写到标准输出 (STDOUT)。

生成的 tar 归档包含所有父层 (parent layers),以及所有标签 (tags) + 版本 (versions),或者是你指定的 repo:tag。对于每一个你提供的镜像参数,都会这样处理。

用法

docker image save [OPTIONS] IMAGE [IMAGE...]

这个命令也有一个别名 (alias):docker save

选项

| 选项 | 默认值 | 描述 | | -- | | | | -o, --output | — | 写入到一个文件,而不是输出到标准输出 (STDOUT)。 | | --platform | — | (在 API 1.48 及以上版本) 只保存指定的平台 (variant)。格式为 os[/arch[/variant]],例如 linux/amd64。 |

  • os:操作系统

  • arch:架构 (比如 amd64, arm64)

  • variant:架构变种 (可选)

  • 如果省略 arch / variant,会默认为守护进程 (daemon) 当前平台的架构 / 变种。

示例 (Examples)

1. 创建一个备份 (backup),可以之后用 docker load 恢复

2. 使用 gzip 将镜像保存为 .tar.gz (压缩归档)

为了减小备份体积,你可以将 docker save 的输出通过管道 (pipe) 传给 gzip

3. “挑选 (cherry-pick)” 特定标签 (tags)

你可以仅保存某些标签,而不是一个镜像的所有标签:

这里,只把 ubuntu:lucidubuntu:saucy 保存到同一个 tar 包里。

4. 保存特定平台 (variant) 的镜像 (--platform)

  • --platform 选项允许你指定要保存的镜像平台 (variant)。默认情况下,如果你的 Docker 守护进程 (daemon) 本地存有多个平台版本 (multi-platform variants),docker save 会保存所有这些版本。使用 --platform 可以指定只保存某一个。

  • 如果你指定的平台在本地镜像存储 (image store) 中不存在,就会报错。

  • 平台格式是 os[/arch[/variant]],例如 linux/amd64linux/arm64/v8。arch 和 variant 是可选的,如果省略,会默认使用守护进程的本机架构 / 变种。

举例:保存 alpine:latest 的 RISC‑V 版本 (riscv64):

如果你指定一个不存在的平台变体,比如 linux/s390x,你可能会看到类似这样的错误:

最后更新于

这有帮助吗?