github.com/hanks177/podman/v4@v4.1.3-0.20220613032544-16d90015bc83/docs/source/markdown/podman-manifest.1.md (about) 1 % podman-manifest(1) 2 3 ## NAME 4 podman\-manifest - Create and manipulate manifest lists and image indexes 5 6 ## SYNOPSIS 7 **podman manifest** *subcommand* 8 9 ## DESCRIPTION 10 The `podman manifest` command provides subcommands which can be used to: 11 12 * Create a working Docker manifest list or OCI image index. 13 14 ## SUBCOMMANDS 15 16 | Command | Man Page | Description | 17 | -------- | ------------------------------------------------------------ | --------------------------------------------------------------------------- | 18 | add | [podman-manifest-add(1)](podman-manifest-add.1.md) | Add an image to a manifest list or image index. | 19 | annotate | [podman-manifest-annotate(1)](podman-manifest-annotate.1.md) | Add or update information about an entry in a manifest list or image index. | 20 | create | [podman-manifest-create(1)](podman-manifest-create.1.md) | Create a manifest list or image index. | 21 | exists | [podman-manifest-exists(1)](podman-manifest-exists.1.md) | Check if the given manifest list exists in local storage | 22 | inspect | [podman-manifest-inspect(1)](podman-manifest-inspect.1.md) | Display a manifest list or image index. | 23 | push | [podman-manifest-push(1)](podman-manifest-push.1.md) | Push a manifest list or image index to a registry. | 24 | remove | [podman-manifest-remove(1)](podman-manifest-remove.1.md) | Remove an image from a manifest list or image index. | 25 | rm | [podman-manifest-rme(1)](podman-manifest-rm.1.md) | Remove manifest list or image index from local storage. | 26 27 ## EXAMPLES 28 29 ### Building a multi-arch manifest list from a Containerfile 30 31 Assuming the `Containerfile` uses `RUN` instructions, the host needs 32 a way to execute non-native binaries. Configuring this is beyond 33 the scope of this example. Building a multi-arch manifest list 34 `shazam` in parallel across 4-threads can be done like this: 35 36 $ platarch=linux/amd64,linux/ppc64le,linux/arm64,linux/s390x 37 $ podman build --jobs=4 --platform=$platarch --manifest shazam . 38 39 **Note:** The `--jobs` argument is optional, and the `-t` or `--tag` 40 option should *not* be used. 41 42 ### Assembling a multi-arch manifest from separately built images 43 44 Assuming `example.com/example/shazam:$arch` images are built separately 45 on other hosts and pushed to the `example.com` registry. They may 46 be combined into a manifest list, and pushed using a simple loop: 47 48 $ REPO=example.com/example/shazam 49 $ podman manifest create $REPO:latest 50 $ for IMGTAG in amd64 s390x ppc64le arm64; do \ 51 podman manifest add $REPO:latest docker://$REPO:IMGTAG; \ 52 done 53 $ podman manifest push --all $REPO:latest 54 55 **Note:** The `add` instruction argument order is `<manifest>` then `<image>`. 56 Also, the `--all` push option is required to ensure all contents are 57 pushed, not just the native platform/arch. 58 59 ### Removing and tagging a manifest list before pushing 60 61 Special care is needed when removing and pushing manifest lists, as opposed 62 to the contents. You almost always want to use the `manifest rm` and 63 `manifest push --all` subcommands. For example, a rename and push could 64 be performed like this: 65 66 $ podman tag localhost/shazam example.com/example/shazam 67 $ podman manifest rm localhost/shazam 68 $ podman manifest push --all example.com/example/shazam 69 70 71 ## SEE ALSO 72 **[podman(1)](podman.1.md)**, **[podman-manifest-add(1)](podman-manifest-add.1.md)**, **[podman-manifest-annotate(1)](podman-manifest-annotate.1.md)**, **[podman-manifest-create(1)](podman-manifest-create.1.md)**, **[podman-manifest-inspect(1)](podman-manifest-inspect.1.md)**, **[podman-manifest-push(1)](podman-manifest-push.1.md)**, **[podman-manifest-remove(1)](podman-manifest-remove.1.md)**