1podman-push(1)() podman-push(1)()
2
3
4
6 podman-push - Push an image, manifest list or image index from local
7 storage to elsewhere
8
9
11 podman push [options] image [destination]
12
13
14 podman image push [options] image [destination]
15
16
18 Pushes an image, manifest list or image index from local storage to a
19 specified destination. Push is mainly used to push images to reg‐
20 istries, however podman push can be used to save images to tarballs and
21 directories using the following transports: dir:, docker-archive:,
22 docker-daemon: and oci-archive:.
23
24
26 Images are pushed from those stored in local image storage.
27
28
30 The DESTINATION is a location to store container images
31 The Image "DESTINATION" uses a "transport":"details" format.
32 If a transport is not given, podman push will attempt to push
33 to a registry.
34
35
36 Multiple transports are supported:
37
38
39 dir:path
40 An existing local directory path storing the manifest, layer tarballs
41 and signatures as individual files. This is a non-standardized format,
42 primarily useful for debugging or noninvasive container inspection.
43
44
45 $ podman push myimage dir:/tmp/myimage
46
47
48
49 docker://docker-reference
50 An image in a registry implementing the "Docker Registry HTTP API
51 V2". By default, uses the authorization state in $XDG_RUNTIME_DIR/con‐
52 tainers/auth.json, which is set using (podman login). If the authoriza‐
53 tion state is not found there, $HOME/.docker/config.json is checked,
54 which is set using (docker login).
55
56
57 $ podman push myimage quay.io/username/myimage
58
59
60
61 docker-archive:path[:docker-reference]
62 An image is stored in the docker save formatted file. docker-refer‐
63 ence is only used when creating such a file, and it must not contain a
64 digest.
65
66
67 $ podman push myimage docker-archive:/tmp/myimage
68
69
70
71 docker-daemon:docker-reference
72 An image in docker-reference format stored in the docker daemon
73 internal storage. docker-reference must contain a tag.
74
75
76 $ sudo podman push myimage docker-daemon:docker.io/library/myimage:33
77
78
79
80 oci-archive:path:tag
81 An image tag in a directory compliant with "Open Container Image Lay‐
82 out Specification" at path.
83
84
85 $ podman push myimage oci-archive:/tmp/myimage
86
87
88
90 --authfile=path
91 Path of the authentication file. Default is ${XDG_RUNTIME_DIR}/contain‐
92 ers/auth.json, which is set using podman login. If the authorization
93 state is not found there, $HOME/.docker/config.json is checked, which
94 is set using docker login.
95
96
97 Note: You can also override the default path of the authentication file
98 by setting the REGISTRY_AUTH_FILE environment variable. export REG‐
99 ISTRY_AUTH_FILE=path
100
101
102 --creds=[username[:password]]
103 The [username[:password]] to use to authenticate with the registry if
104 required. If one or both values are not supplied, a command line
105 prompt will appear and the value can be entered. The password is
106 entered without echo.
107
108
109 --cert-dir=path
110 Use certificates at path (*.crt, *.cert, *.key) to connect to the reg‐
111 istry. Default certificates directory is /etc/containers/certs.d. (Not
112 available for remote commands)
113
114
115 --compress
116 Compress tarball image layers when pushing to a directory using the
117 'dir' transport. (default is same compression type, compressed or
118 uncompressed, as source) Note: This flag can only be set when using the
119 dir transport
120
121
122 --digestfile Digestfile
123 After copying the image, write the digest of the resulting image to the
124 file. (Not available for remote commands)
125
126
127 --disable-content-trust
128 This is a Docker specific option to disable image verification to a
129 Docker registry and is not supported by Podman. This flag is a NOOP
130 and provided solely for scripting compatibility.
131
132
133 --format, -f=format
134 Manifest Type (oci, v2s1, or v2s2) to use when pushing an image to a
135 directory using the 'dir:' transport (default is manifest type of
136 source) Note: This flag can only be set when using the dir transport.
137 (Not available for remote commands)
138
139
140 --quiet, -q
141 When writing the output image, suppress progress output
142
143
144 --remove-signatures
145 Discard any pre-existing signatures in the image. (Not available for
146 remote commands)
147
148
149 --sign-by=key
150 Add a signature at the destination using the specified key. (Not avail‐
151 able for remote commands)
152
153
154 --tls-verify=true|false
155 Require HTTPS and verify certificates when contacting registries
156 (default: true). If explicitly set to true, then TLS verification will
157 be used. If set to false, then TLS verification will not be used. If
158 not specified, TLS verification will be used unless the target registry
159 is listed as an insecure registry in registries.conf.
160
161
163 This example pushes the image specified by the imageID to a local
164 directory in docker format.
165
166
167 # podman push imageID dir:/path/to/image
168
169
170 This example pushes the image specified by the imageID to a local
171 directory in oci format.
172
173
174 # podman push imageID oci-archive:/path/to/layout:image:tag
175
176
177 This example pushes the image specified by the imageID to a container
178 registry named registry.example.com
179
180
181 # podman push imageID docker://registry.example.com/repository:tag
182
183
184 This example pushes the image specified by the imageID to a container
185 registry named registry.example.com and saves the digest in the speci‐
186 fied digestfile.
187
188
189 # podman push --digestfile=/tmp/mydigest imageID docker://reg‐
190 istry.example.com/repository:tag
191
192
193 This example pushes the image specified by the imageID and puts it into
194 the local docker container store
195
196
197 # podman push imageID docker-daemon:image:tag
198
199
200 This example pushes the alpine image to umohnani/alpine on dockerhub
201 and reads the creds from the path given to --authfile
202
203
204 # podman push --authfile temp-auths/myauths.json alpine docker://docker.io/umohnani/alpine
205 Getting image source signatures
206 Copying blob sha256:5bef08742407efd622d243692b79ba0055383bbce12900324f75e56f589aedb0
207 4.03 MB / 4.03 MB [========================================================] 1s
208 Copying config sha256:ad4686094d8f0186ec8249fc4917b71faa2c1030d7b5a025c29f26e19d95c156
209 1.41 KB / 1.41 KB [========================================================] 1s
210 Writing manifest to image destination
211 Storing signatures
212
213
214
215 This example pushes the rhel7 image to rhel7-dir with the "oci" mani‐
216 fest type
217
218
219 # podman push --format oci registry.access.redhat.com/rhel7 dir:rhel7-dir
220 Getting image source signatures
221 Copying blob sha256:9cadd93b16ff2a0c51ac967ea2abfadfac50cfa3af8b5bf983d89b8f8647f3e4
222 71.41 MB / 71.41 MB [======================================================] 9s
223 Copying blob sha256:4aa565ad8b7a87248163ce7dba1dd3894821aac97e846b932ff6b8ef9a8a508a
224 1.21 KB / 1.21 KB [========================================================] 0s
225 Copying config sha256:f1b09a81455c351eaa484b61aacd048ab613c08e4c5d1da80c4c46301b03cf3b
226 3.01 KB / 3.01 KB [========================================================] 0s
227 Writing manifest to image destination
228 Storing signatures
229
230
231
233 podman(1), podman-pull(1), podman-login(1)
234
235
236
237 podman-push(1)()