名称¶
podman-manifest - 创建和操作清单列表和镜像索引
概要¶
podman manifest 子命令
描述¶
命令 podman manifest
提供了用于执行以下操作的子命令:
* Create a working Docker manifest list or OCI image index.
子命令¶
命令 |
手册页 |
描述 |
---|---|---|
add |
将镜像或工件添加到清单列表或镜像索引中。 |
|
annotate |
添加和更新清单列表或镜像索引中镜像或工件的信息。 |
|
create |
创建清单列表或镜像索引。 |
|
exists |
检查给定的清单列表是否存在于本地存储中。 |
|
inspect |
显示清单列表或镜像索引。 |
|
push |
将清单列表或镜像索引推送到注册表。 |
|
remove |
从清单列表或镜像索引中移除项目。 |
|
rm |
从本地存储中移除清单列表或镜像索引。 |
示例¶
从 Containerfile 构建多架构清单列表¶
假设 Containerfile
使用 RUN
指令,主机需要一种方法来执行非本地二进制文件。配置此项超出了本示例的范围。可以通过以下方式并行构建跨 4 个线程的多架构清单列表 shazam
$ platarch=linux/amd64,linux/ppc64le,linux/arm64,linux/s390x
$ podman build --jobs=4 --platform=$platarch --manifest shazam .
注意: --jobs
参数是可选的。在构建多架构清单列表时,请勿使用 podman build
命令的 --tag
(或 -t
)选项。
从单独构建的镜像组装多架构清单¶
假设 example.com/example/shazam:$arch
镜像在其他主机上单独构建并推送到 example.com
注册表。可以使用简单的循环将它们合并成一个清单列表,并进行推送。
$ REPO=example.com/example/shazam
$ podman manifest create $REPO:latest
$ for IMGTAG in amd64 s390x ppc64le arm64; do \
podman manifest add $REPO:latest docker://$REPO:IMGTAG; \
done
$ podman manifest push --all $REPO:latest
注意: add
指令的参数顺序是 <manifest>
然后是 <image>
。此外,需要使用 --all
推送选项来确保推送所有内容,而不仅仅是本地平台/架构。
在推送之前移除和标记清单列表¶
移除和推送清单列表时,需要格外小心,与推送内容不同。您几乎总是需要使用 manifest rm
和 manifest push --all
子命令。例如,可以使用以下方法执行重命名和推送操作。
$ podman tag localhost/shazam example.com/example/shazam
$ podman manifest rm localhost/shazam
$ podman manifest push --all example.com/example/shazam
参见¶
podman(1), podman-manifest-add(1), podman-manifest-annotate(1), podman-manifest-create(1), podman-manifest-inspect(1), podman-manifest-push(1), podman-manifest-remove(1)