podman-manifest(1) General Commands Manual podman-manifest(1)

# [NAME](#NAME)

podman-manifest - Create and manipulate manifest lists and image indexes

# [SYNOPSIS](#SYNOPSIS)

**podman manifest** *subcommand*

# [DESCRIPTION](#DESCRIPTION)

The **podman manifest** command provides subcommands which can be used to:

```
* Create a working Docker manifest list or OCI image index.
```

# [SUBCOMMANDS](#SUBCOMMANDS)

**Command** **Man Page** **Description** add [podman-manifest-add(1)](/man/os/podman-doc-6.0/podman-manifest-add.1) Add an image or artifact to a manifest list or image index. annotate [podman-manifest-annotate(1)](/man/os/podman-doc-6.0/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)](/man/os/podman-doc-6.0/podman-manifest-create.1) Create a manifest list or image index. exists [podman-manifest-exists(1)](/man/os/podman-doc-6.0/podman-manifest-exists.1) Check if the given manifest list exists in local storage inspect [podman-manifest-inspect(1)](/man/os/podman-doc-6.0/podman-manifest-inspect.1) Display a manifest list or image index. push [podman-manifest-push(1)](/man/os/podman-doc-6.0/podman-manifest-push.1) Push a manifest list or image index to a registry. remove [podman-manifest-remove(1)](/man/os/podman-doc-6.0/podman-manifest-remove.1) Remove an item from a manifest list or image index. rm [podman-manifest-rm(1)](/man/os/podman-doc-6.0/podman-manifest-rm.1) Remove manifest list or image index from local storage.

# [EXAMPLES](#EXAMPLES)

## [Building a multi-arch manifest list from a Containerfile](#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](#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:** The **add** instruction argument order is **&lt;manifest&gt;** then **&lt;image&gt;**. 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](#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](#SEE_ALSO)

[**podman(1)**](/man/os/podman-doc-6.0/podman.1), [**podman-manifest-add(1)**](/man/os/podman-doc-6.0/podman-manifest-add.1), [**podman-manifest-annotate(1)**](/man/os/podman-doc-6.0/podman-manifest-annotate.1), [**podman-manifest-create(1)**](/man/os/podman-doc-6.0/podman-manifest-create.1), [**podman-manifest-inspect(1)**](/man/os/podman-doc-6.0/podman-manifest-inspect.1), [**podman-manifest-push(1)**](/man/os/podman-doc-6.0/podman-manifest-push.1), [**podman-manifest-remove(1)**](/man/os/podman-doc-6.0/podman-manifest-remove.1)

---

Document: podman-manifest(1) from podman-doc-6.0 6.0.2-r2 (Chainguard OS)
Source: https://github.com/containers/podman
