podman-manifest
podman-manifest(1) General Commands Manual podman-manifest(1)
NAME
podman-manifest - Create and manipulate manifest lists and image indexesSYNOPSIS
podman manifest subcommandDESCRIPTION
The podman manifest command provides subcommands which can be used to:
* Create a working Docker manifest list or OCI image index.SUBCOMMANDS
┌──────────┬─────────────────────────────┬─────────────────────────────────────────────────┐
│ Command │ Man Page │ Description │
├──────────┼─────────────────────────────┼─────────────────────────────────────────────────┤
│ add │ podman-manifest-add(1) │ Add an image or artifact to a manifest list or │
│ │ │ image index. │
├──────────┼─────────────────────────────┼─────────────────────────────────────────────────┤
│ annotate │ podman-manifest-annotate(1) │ Add and update information about an image or │
│ │ │ artifact in a manifest list or image index. │
├──────────┼─────────────────────────────┼─────────────────────────────────────────────────┤
│ create │ podman-manifest-create(1) │ Create a manifest list or image index. │
├──────────┼─────────────────────────────┼─────────────────────────────────────────────────┤
│ exists │ podman-manifest-exists(1) │ Check if the given manifest list exists in lo‐ │
│ │ │ cal storage │
├──────────┼─────────────────────────────┼─────────────────────────────────────────────────┤
│ inspect │ podman-manifest-inspect(1) │ Display a manifest list or image index. │
├──────────┼─────────────────────────────┼─────────────────────────────────────────────────┤
│ push │ podman-manifest-push(1) │ Push a manifest list or image index to a reg‐ │
│ │ │ istry. │
├──────────┼─────────────────────────────┼─────────────────────────────────────────────────┤
│ remove │ podman-manifest-remove(1) │ Remove an item from a manifest list or image │
│ │ │ index. │
├──────────┼─────────────────────────────┼─────────────────────────────────────────────────┤
│ rm │ podman-manifest-rm(1) │ Remove manifest list or image index from local │
│ │ │ storage. │
└──────────┴─────────────────────────────┴─────────────────────────────────────────────────┘EXAMPLES Building a multi-arch manifest list from a Containerfile
Assuming the Containerfile uses RUN instructions, the host needs a way to execute non-native binaries. Configuring this is beyond the scope of this example. 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 --jobs argument is optional. Do not use the podman build command's --tag (or -t) option when building a multi-arch manifest list.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 us‐
ing 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: The add instruction argument order is <manifest> then <image>. Also, the --all push option is required to ensure all contents are pushed, not just the native platform/arch.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/shazamSEE 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)
podman-manifest(1)