跳到主要内容

将清单列表或镜像索引推送到注册表

摘要

podman manifest push [选项] 清单列表名或索引名 [目标地址]

描述

将清单列表或镜像索引推送到注册表。这允许您将多个平台的镜像组合到一个清单列表中,并将整个清单列表作为一个单独的实体推送到注册表。

返回值

返回列表镜像的 ID 和镜像清单的摘要。

选项

--add-compression=压缩格式

确保为每个平台添加请求的压缩变体到清单列表中,同时保持原始实例不变。支持的压缩格式包括(gzipzstdzstd:chunked)。此标志可以多次使用。

请注意,--compression-format 控制清单列表中每个实例的压缩格式。--add-compression 将在清单列表中为每个实例添加指定压缩格式的另一个变体。例如,使用 --compression-format gzip --add-compression zstd 将推送一个清单列表,其中每个实例都使用 gzip 压缩,并且每个实例还有一个使用 zstd 压缩的变体。

--all

推送清单列表或镜像索引中提到的镜像,以及列表或索引本身。(默认为 true)

--authfile

指定包含认证信息的文件的路径,用于访问私有注册表。

--cert-dir

指定包含 TLS 证书和密钥的目录的路径。

--compression-format

设置用于清单列表中每个镜像实例的压缩格式。支持的压缩格式包括(gzipzstdzstd:chunked)。

--compression-level

设置压缩算法使用的压缩级别(如果适用)。不同的压缩格式可能支持不同的压缩级别范围。

--creds

使用指定的凭据字符串进行身份验证。格式通常为 username:password

--digestfile

将镜像摘要写入指定的文件,而不是输出到标准输出。

--force-compression

强制对所有镜像使用指定的压缩格式,即使原始镜像已经是压缩的。

--format, -f=format

指定推送清单列表时使用的清单列表类型(oci 或 v2s2)。默认为 oci 类型。

--quiet, -q

在写入清单时,抑制进度输出。

--remove-signatures

推送镜像时不复制签名。

--rm

如果推送成功,则从本地存储中删除清单列表或镜像索引。

--sign-by=fingerprint

使用指定的密钥通过“简单签名”为推送的镜像添加签名。(此选项不适用于远程 Podman 客户端,包括 Mac 和 Windows(不包括 WSL2)机器)

--sign-by-sigstore=param-file

基于在容器 sigstore 签名参数文件 param-file 中指定的进一步选项,添加一个 sigstore 签名。有关文件格式的详细信息,请参阅 containers-sigstore-signing-params.yaml(5)。

--sign-by-sigstore-private-key=path

使用指定路径的私钥为推送的镜像添加 sigstore 签名。(此选项不适用于远程 Podman 客户端,包括 Mac 和 Windows(不包括 WSL2)机器)

--sign-passphrase-file

指定包含签名所需通行短语的文件路径。

--tls-verify

要求与目标注册表之间的连接使用 TLS 验证。

DESTINATION

DESTINATION 是容器镜像被推送到的位置。它支持 containers-transports(5) 中列出的所有传输方式。如果没有指定传输方式,则使用 docker(即容器注册表)传输方式。对于远程客户端,包括 Mac 和 Windows(不包括 WSL2)机器,docker 是唯一支持的传输方式。

示例

将清单列表推送到容器注册表:

podman manifest push mylist:v1.11 docker://registry.example.org/mylist:v1.11

清单列表推送到注册表示例

示例 1: 将清单列表推送到注册表

将名为 mylist:v1.11 的清单列表推送到名为 myregistry.example.com/mylist:v1.11 的目标地址:

podman manifest push mylist:v1.11 myregistry.example.com/mylist:v1.11

示例 2: 使用认证文件推送清单列表

如果目标注册表需要身份验证,您可以使用 --authfile 选项指定包含认证信息的文件:

podman manifest push --authfile /path/to/authfile.json mylist:v1.11 myregistry.example.com/mylist:v1.11

示例 3: 添加压缩变体并推送清单列表

在推送清单列表时,为每个平台添加 gzip 和 zstd 压缩的变体:

podman manifest push --compression-format gzip --add-compression zstd mylist:v1.11 myregistry.example.com/mylist:v1.11

注意事项

  • 确保您有足够的权限将镜像推送到目标注册表,并且目标注册表是可访问的。
  • 如果目标注册表需要身份验证,请确保提供正确的认证信息。
  • 压缩选项可能会增加推送操作的时间和计算资源需求,特别是当处理大型镜像或多个平台时。

另请参阅

podman(1), podman-manifest(1)

这些手册页提供了关于 Podman 及其 manifest 子命令的更多详细信息和使用方法。

相关命令和资源