跳到主要内容

将镜像或工件添加到清单列表或镜像索引

概述

podman manifest add [选项] 清单列表或索引名称 [传输方式]:镜像名称 镜像或工件名称 [...]

描述

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

返回值

清单镜像的 ID。

选项

--all

如果添加到列表或索引中的镜像本身是一个列表或索引,则将其所有内容添加到本地列表中。默认情况下,仅从这样的列表或索引中添加一个镜像到列表或索引中。不建议将 --all 与下面描述的其他选项结合使用。

--annotation.manifest

(此选项的详细描述缺失)运行podman manifest add --help命令,这将显示该命令的详细帮助信息,包括所有可用选项的描述和用法示例。

--arch=architecture

覆盖清单或索引记录的作为镜像要求的体系结构。如果 imageName 引用的是一个清单列表或镜像索引,则从中获取体系结构信息。否则,从镜像的配置信息中获取体系结构信息。

--artifact

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

--artifact-config=path

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

--artifact-config-type=type

当创建工件清单并将其添加到镜像索引时,使用指定的MIME类型作为工件清单中配置块关联的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

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

--cert-dir

指定包含TLS证书的目录路径,用于与注册表进行安全通信。

--creds

指定用于身份验证的用户名和密码。

--features

启用或禁用Podman的某些功能。这允许用户根据需要对Podman的行为进行微调。

--os=OS

覆盖列表或索引记录中作为镜像要求的操作系统。如果imagename指的是清单列表或镜像索引,那么将从其中检索OS信息。否则,将从镜像的配置信息中检索它。

--os-version

指定操作系统的版本。当添加镜像到清单列表或索引时,可以使用此选项来指定特定版本的操作系统要求。

--tls-verify

启用或禁用与远程注册表进行通信时的TLS验证。默认情况下,Podman会验证与服务器的TLS连接以确保通信的安全性。将此选项设置为false将禁用此验证,但这样做可能会降低安全性。

--variant.manifest

指定清单的变体。某些镜像可能支持多个清单变体,每个变体可能针对不同的硬件架构或平台。使用这个选项可以指定要添加的特定变体。

传输协议

支持多种传输协议:

docker://_docker-reference_ (默认)

存储在实现了“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格式的镜像。oci-reference必须包含一个标签。

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

dir:_path_

存储清单、层tar包和签名的现有本地目录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

示例

添加指定默认镜像到目标清单列表

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

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

这个命令会将名为fedora的Docker镜像的默认版本(即不带任何架构或变体指定的镜像)添加到名为mylist:v1.11的清单列表中,并返回添加的镜像的摘要。

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

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

使用--all选项,可以将源清单列表docker://fedora中的所有镜像版本(包括不同架构和变体)都添加到目标清单列表mylist:v1.11中。

根据架构和变体从源清单列表中选择镜像并添加到目标清单列表

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

这个命令使用--arch--variant选项来指定要添加的镜像的架构(这里是arm64)和变体(这里是v8)。然后,它将指定的镜像摘要(在这里是长ID)从源位置添加到目标清单列表mylist:v1.11中。

另请参阅

podman(1), podman-manifest(1)

这些手册页提供了关于Podman命令行工具和其manifest子命令的更多详细信息和用法示例。podman(1)是Podman的主手册页,介绍了Podman的基本用法和功能。podman-manifest(1)则专门介绍了Podman中与清单列表和镜像索引相关的命令和操作。