名称

podman-manifest-add - 将镜像或制品添加到清单列表或镜像索引中

语法

podman manifest add [选项] listnameorindexname [传输方式]:imagename imageorartifactname […]

描述

将指定的镜像添加到指定的清单列表或镜像索引中,或者创建一个制品清单并将其添加到指定的镜像索引中。

返回值

清单镜像的 ID。

选项

--all

如果添加到列表或索引的镜像本身是列表或索引,则将所有内容添加到本地列表。默认情况下,只将来自此类列表或索引的单个镜像添加到列表或索引中。不建议将--all与下面描述的任何其他选项结合使用。

--annotation=annotation=value

在指定镜像或制品的条目上设置注释。

--arch=architecture

覆盖列表或索引记录的镜像所需的架构。如果imagename引用清单列表或镜像索引,则架构信息将从中检索。否则,它将从镜像的配置信息中检索。

--artifact

创建一个制品清单并将其添加到镜像索引中。索引名称后的参数将被解释为文件名而不是镜像引用。在大多数情况下,也应该指定--artifact-type选项。

--artifact-config=path

在创建制品清单并将其添加到镜像索引时,使用指定文件的內容作为制品清单中的配置 blob。在大多数情况下,保持默认值(表示空配置)不变是首选选项。

--artifact-config-type=type

在创建制品清单并将其添加到镜像索引时,使用指定的 MIME 类型作为制品清单中配置 blob 关联的mediaType。在大多数情况下,保持默认值(表示空配置或标准 OCI 配置类型)不变是首选选项。

--artifact-exclude-titles

在创建制品清单并将其添加到镜像索引时,不要将每个添加到制品清单的文件的文件名作为“org.opencontainers.image.title”注释。从注册表检索制品的工具可能会使用这些值在将制品保存到磁盘时选择文件名,因此除非与特定注册表进行互操作需要此选项,否则不建议使用此选项。

--artifact-layer-type=type

在创建制品清单并将其添加到镜像索引时,使用指定的 MIME 类型作为文件内容关联的mediaType。如果没有指定,将根据文件名或文件內容进行猜测并使用,但如果需要确定性,则应指定该选项。

--artifact-subject=imageName

在创建制品清单并将其添加到镜像索引时,将制品清单中的subject字段设置为以某种方式标记制品清单与指定镜像相关联。制品清单最多只能与一个主题相关联。

--artifact-type=type

在创建制品清单时,使用指定的 MIME 类型作为清单的artifactType值,而不是使用信息量较少的默认值。

--authfile=path

身份验证文件的路径。默认情况下,在 Linux 上为${XDG_RUNTIME_DIR}/containers/auth.json,在 Windows/macOS 上为$HOME/.config/containers/auth.json。该文件由podman login创建。如果在那里找不到授权状态,则会检查$HOME/.docker/config.json,该状态使用docker login设置。

注意:还可以通过设置REGISTRY_AUTH_FILE环境变量来覆盖身份验证文件的默认路径。这可以使用export REGISTRY_AUTH_FILE=path完成。

--cert-dir=path

使用path(*.crt, *.cert, *.key)处的证书连接到注册表。(默认:/etc/containers/certs.d)有关详细信息,请参见containers-certs.d(5)。(此选项在远程 Podman 客户端(包括 Mac 和 Windows(不包括 WSL2)机器)不可用。)

--creds=[username[:password]]

如果需要,用于对注册表进行身份验证的[username[:password]]。如果一个或两个值没有提供,则会显示命令行提示,并且可以输入该值。密码在不回显的情况下输入。

请注意,指定的凭据仅用于对目标注册表进行身份验证。它们不会用于镜像或注册表被重写时(参见containers-registries.conf(5));要对它们进行身份验证,请考虑使用containers-auth.json(5)文件。

--features=feature

指定列表或索引记录的镜像所需的特性列表。此选项很少使用。

--os=OS

覆盖列表或索引记录的镜像所需的 OS。如果imagename引用清单列表或镜像索引,则 OS 信息将从中检索。否则,它将从镜像的配置信息中检索。

--os-version=version

指定列表或索引记录的镜像所需的 OS 版本。此选项很少使用。

--tls-verify

要求 HTTPS 并在联系注册表时验证证书(默认:true)。如果显式设置为true,则使用 TLS 验证。如果设置为false,则不使用 TLS 验证。如果未指定,则使用 TLS 验证,除非目标注册表在containers-registries.conf(5)中列为不安全的注册表。

--variant

指定列表或索引为镜像记录的变体。此选项通常用于区分具有相同架构值的多个条目,但它们期望其指令集的不同版本。

传输方式

支持多种传输方式

docker://docker-reference (default) 在实现“Docker Registry HTTP API V2”的注册表中的镜像。默认情况下,使用$XDG_RUNTIME_DIR/containers/auth.json中的授权状态,该状态使用(podman login)设置。如果在那里找不到授权状态,则会检查$HOME/.docker/config.json,该状态使用(docker login)设置。

$ podman manifest add mylist:v1.11 docker://quay.io/username/myimage

containers-storage:oci-reference 存储在本地容器存储中的以oci-reference格式存储的镜像。oci-reference必须包含标签。

$ podman manifest add mylist:v1.11 containers-storage:quay.io/username/myimage

dir:path 存储清单、层 tarball 和签名作为单个文件的现有本地目录path。这是一种非标准格式,主要用于调试或非侵入式容器检查。

$ podman manifest add dir:/tmp/myimage

docker-archive:path[:docker-reference] 镜像存储在docker save格式化的文件中。docker-reference仅在创建此类文件时使用,并且不能包含摘要。

$ podman manifest add docker-archive:/tmp/myimage

docker-daemon:docker-reference 存储在 docker 守护程序内部存储中的以docker-reference格式存储的镜像。docker-reference也可以是镜像 ID(docker-daemon:algo:digest)。

$ sudo podman manifest add docker-daemon:docker.io/library/myimage:33

oci-archive:path:tag 位于path处符合“Open Container Image Layout Specification”的目录中的镜像tag

$ podman manifest add oci-archive:/tmp/myimage

示例

将源清单列表中的指定默认镜像添加到目标清单列表中

podman manifest add mylist:v1.11 docker://fedora
71c201d10fffdcac52968a000d85a0a016ca1c7d5473948000d3131c1773d965

将源清单列表中的所有镜像添加到目标清单列表中

podman manifest add --all mylist:v1.11 docker://fedora
71c201d10fffdcac52968a000d85a0a016ca1c7d5473948000d3131c1773d965

将源清单列表中与 arch 和 variant 匹配的选定镜像添加到目标清单列表中

podman manifest add --arch arm64 --variant v8 mylist:v1.11 docker://71c201d10fffdcac52968a000d85a0a016ca1c7d5473948000d3131c1773d965

另请参见

podman(1), podman-manifest(1)