podman-manifest(1)
π podman-manifest(1) β bestie edition π
okay so you found the podman-manifest page in the General Commands Manual and honestly? iconic. this is the group chat where we talk about creating and manipulating manifest lists and image indexes. pull up a chair, grab a boba π§
β¨ NAME β¨
podman-manifest β Create and manipulate manifest lists and image indexes
πΈ SYNOPSIS πΈ
podman manifest subcommand
π¦ DESCRIPTION π¦
The podman manifest command is basically a whole lil family of subcommands, and you can use them to:
- Create a working Docker manifest list or OCI image index.
that's the vibe. that's the whole assignment. π
π SUBCOMMANDS π
every single one of these is its own moment, so let's go one by one:
addβ man page:podman-manifest-add(1)β Add an image or artifact to a manifest list or image index. π«Άannotateβ man page:podman-manifest-annotate(1)β Add and update information about an image or artifact in a manifest list or image index. β¨createβ man page:podman-manifest-create(1)β Create a manifest list or image index. π±existsβ man page:podman-manifest-exists(1)β Check if the given manifest list exists in local storage πinspectβ man page:podman-manifest-inspect(1)β Display a manifest list or image index. πpushβ man page:podman-manifest-push(1)β Push a manifest list or image index to a registry. πremoveβ man page:podman-manifest-remove(1)β Remove an item from a manifest list or image index. ποΈrmβ man page:podman-manifest-rm(1)β Remove manifest list or image index from local storage. π
π EXAMPLES π
π Building a multi-arch manifest list from a Containerfile
so real talk: assuming the Containerfile uses RUN instructions, the host needs a way to execute non-native binaries. how you configure that is beyond the scope of this example, bestie β we're not getting into it here. but building a multi-arch manifest list shazam in parallel across 4-threads can be done like this:
$ platarch=linux/amd64,linux/ppc64le,linux/arm64,linux/s390x
$ podman build --jobs=4 --platform=$platarch --manifest shazam .
Note: The--jobsargument is optional. Do not use thepodman buildcommand's--tag(or-t) option when building a multi-arch manifest list. not me warning you twice, but likeβ¦ fr fr. π
π Assembling a multi-arch manifest from separately built images
assuming example.com/example/shazam:$arch images are built separately on other hosts and pushed to the example.com registry, they may be combined into a manifest list, and pushed using a simple loop:
$ 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
Note: Theaddinstruction argument order is<manifest>then<image>. Also, the--allpush option is required to ensure all contents are pushed, not just the native platform/arch. the way that--allis not optional hereβ¦ it's giving mandatory. periodt. π₯
π¦ Removing and tagging a manifest list before pushing
special care is needed when removing and pushing manifest lists, as opposed to the contents. you almost always want to use the manifest rm and manifest push --all subcommands. for example, a rename and push can be performed like this:
$ podman tag localhost/shazam example.com/example/shazam
$ podman manifest rm localhost/shazam
$ podman manifest push --all example.com/example/shazam
π SEE ALSO π
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)
and that's the whole page, bestie π the footer just signs it off as podman-manifest(1) β no extra version or date drama attached, just the manual name chillin' at the bottom like a little signature. you ate this. go build something multi-arch. π«Άβ¨π
π¦ where this page comes from
- arch rolling: podman-docker 6.1.4-1 Β· Apache-2.0
- fedora 43: podman-docker 5:5.6.2-1.fc43 Β· Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND ISC AND MIT AND MPL-2.0
- fedora 43: podman-docker 5:5.8.4-1.fc43
- fedora 43: podman-docker 5:5.8.8-1.fc43
- fedora 43: podman-docker 5:5.8.9-1.fc43 Β· Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND ISC AND MIT AND MPL-2.0
- fedora 44: podman-docker 5:5.8.1-1.fc44 Β· Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND ISC AND MIT AND MPL-2.0
- fedora 44: podman-docker 5:5.8.7-1.fc44
- fedora 44: podman-docker 5:5.8.9-1.fc44 Β· Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND ISC AND MIT AND MPL-2.0
- ubuntu resolute: podman-docker 5.7.0+ds2-3build1 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms