1podman-manifest(1) General Commands Manual podman-manifest(1)
2
3
4
6 podman-manifest - Create and manipulate manifest lists and image in‐
7 dexes
8
9
11 podman manifest subcommand
12
13
15 The podman manifest command provides subcommands which can be used to:
16
17 * Create a working Docker manifest list or OCI image index.
18
19
20
22 ┌─────────┬─────────────────────────────┬─────────────────────┐
23 │Command │ Man Page │ Description │
24 ├─────────┼─────────────────────────────┼─────────────────────┤
25 │add │ podman-manifest-add(1) │ Add an image to a │
26 │ │ │ manifest list or │
27 │ │ │ image index. │
28 ├─────────┼─────────────────────────────┼─────────────────────┤
29 │annotate │ podman-manifest-annotate(1) │ Add or update in‐ │
30 │ │ │ formation about an │
31 │ │ │ entry in a manifest │
32 │ │ │ list or image in‐ │
33 │ │ │ dex. │
34 ├─────────┼─────────────────────────────┼─────────────────────┤
35 │create │ podman-manifest-create(1) │ Create a manifest │
36 │ │ │ list or image in‐ │
37 │ │ │ dex. │
38 ├─────────┼─────────────────────────────┼─────────────────────┤
39 │exists │ podman-manifest-exists(1) │ Check if the given │
40 │ │ │ manifest list ex‐ │
41 │ │ │ ists in local stor‐ │
42 │ │ │ age │
43 ├─────────┼─────────────────────────────┼─────────────────────┤
44 │inspect │ podman-manifest-inspect(1) │ Display a manifest │
45 │ │ │ list or image in‐ │
46 │ │ │ dex. │
47 ├─────────┼─────────────────────────────┼─────────────────────┤
48 │push │ podman-manifest-push(1) │ Push a manifest │
49 │ │ │ list or image index │
50 │ │ │ to a registry. │
51 ├─────────┼─────────────────────────────┼─────────────────────┤
52 │remove │ podman-manifest-remove(1) │ Remove an image │
53 │ │ │ from a manifest │
54 │ │ │ list or image in‐ │
55 │ │ │ dex. │
56 ├─────────┼─────────────────────────────┼─────────────────────┤
57 │rm │ podman-manifest-rm(1) │ Remove manifest │
58 │ │ │ list or image index │
59 │ │ │ from local storage. │
60 └─────────┴─────────────────────────────┴─────────────────────┘
61
63 Building a multi-arch manifest list from a Containerfile
64 Assuming the Containerfile uses RUN instructions, the host needs a way
65 to execute non-native binaries. Configuring this is beyond the scope
66 of this example. Building a multi-arch manifest list shazam in paral‐
67 lel across 4-threads can be done like this:
68
69 $ platarch=linux/amd64,linux/ppc64le,linux/arm64,linux/s390x
70 $ podman build --jobs=4 --platform=$platarch --manifest shazam .
71
72
73
74 Note: The --jobs argument is optional. Do not use the podman build com‐
75 mand's --tag (or -t) option when building a multi-arch manifest list.
76
77
78 Assembling a multi-arch manifest from separately built images
79 Assuming example.com/example/shazam:$arch images are built separately
80 on other hosts and pushed to the example.com registry. They may be
81 combined into a manifest list, and pushed using a simple loop:
82
83 $ REPO=example.com/example/shazam
84 $ podman manifest create $REPO:latest
85 $ for IMGTAG in amd64 s390x ppc64le arm64; do
86 podman manifest add $REPO:latest docker://$REPO:IMGTAG;
87 done
88 $ podman manifest push --all $REPO:latest
89
90
91
92 Note: The add instruction argument order is <manifest> then <image>.
93 Also, the --all push option is required to ensure all contents are
94 pushed, not just the native platform/arch.
95
96
97 Removing and tagging a manifest list before pushing
98 Special care is needed when removing and pushing manifest lists, as op‐
99 posed to the contents. You almost always want to use the manifest rm
100 and manifest push --all subcommands. For example, a rename and push
101 can be performed like this:
102
103 $ podman tag localhost/shazam example.com/example/shazam
104 $ podman manifest rm localhost/shazam
105 $ podman manifest push --all example.com/example/shazam
106
107
108
110 podman(1), podman-manifest-add(1), podman-manifest-annotate(1), podman-
111 manifest-create(1), podman-manifest-inspect(1), podman-manifest-
112 push(1), podman-manifest-remove(1)
113
114
115
116 podman-manifest(1)