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 in‐
73 ternal 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 en‐
106 tered without echo.
107
108
109 --cert-dir=path
110 Use certificates at path (*.crt, *.cert, *.key) to connect to the reg‐
111 istry. Please refer to containers-certs.d(5) for details. (This option
112 is not available with the remote Podman client)
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 un‐
118 compressed, 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. (This option is not available with the remote Podman client)
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, v2s2, or v2s1) to use when pushing an image.
135
136
137 --quiet, -q
138 When writing the output image, suppress progress output
139
140
141 --remove-signatures
142 Discard any pre-existing signatures in the image. (This option is not
143 available with the remote Podman client)
144
145
146 --sign-by=key
147 Add a signature at the destination using the specified key. (This op‐
148 tion is not available with the remote Podman client)
149
150
151 --tls-verify=true|false
152 Require HTTPS and verify certificates when contacting registries (de‐
153 fault: true). If explicitly set to true, then TLS verification will be
154 used. If set to false, then TLS verification will not be used. If not
155 specified, TLS verification will be used unless the target registry is
156 listed as an insecure registry in registries.conf.
157
158
160 This example pushes the image specified by the imageID to a local di‐
161 rectory in docker format.
162
163
164 # podman push imageID dir:/path/to/image
165
166
167 This example pushes the image specified by the imageID to a local di‐
168 rectory in oci format.
169
170
171 # podman push imageID oci-archive:/path/to/layout:image:tag
172
173
174 This example pushes the image specified by the imageID to a container
175 registry named registry.example.com
176
177
178 # podman push imageID docker://registry.example.com/repository:tag
179
180
181 This example pushes the image specified by the imageID to a container
182 registry named registry.example.com and saves the digest in the speci‐
183 fied digestfile.
184
185
186 # podman push --digestfile=/tmp/mydigest imageID docker://registry.ex‐
187 ample.com/repository:tag
188
189
190 This example pushes the image specified by the imageID and puts it into
191 the local docker container store
192
193
194 # podman push imageID docker-daemon:image:tag
195
196
197 This example pushes the alpine image to umohnani/alpine on dockerhub
198 and reads the creds from the path given to --authfile
199
200
201 # podman push --authfile temp-auths/myauths.json alpine docker://docker.io/umohnani/alpine
202 Getting image source signatures
203 Copying blob sha256:5bef08742407efd622d243692b79ba0055383bbce12900324f75e56f589aedb0
204 4.03 MB / 4.03 MB [========================================================] 1s
205 Copying config sha256:ad4686094d8f0186ec8249fc4917b71faa2c1030d7b5a025c29f26e19d95c156
206 1.41 KB / 1.41 KB [========================================================] 1s
207 Writing manifest to image destination
208 Storing signatures
209
210
211
212 This example pushes the rhel7 image to rhel7-dir with the "oci" mani‐
213 fest type
214
215
216 # podman push --format oci registry.access.redhat.com/rhel7 dir:rhel7-dir
217 Getting image source signatures
218 Copying blob sha256:9cadd93b16ff2a0c51ac967ea2abfadfac50cfa3af8b5bf983d89b8f8647f3e4
219 71.41 MB / 71.41 MB [======================================================] 9s
220 Copying blob sha256:4aa565ad8b7a87248163ce7dba1dd3894821aac97e846b932ff6b8ef9a8a508a
221 1.21 KB / 1.21 KB [========================================================] 0s
222 Copying config sha256:f1b09a81455c351eaa484b61aacd048ab613c08e4c5d1da80c4c46301b03cf3b
223 3.01 KB / 3.01 KB [========================================================] 0s
224 Writing manifest to image destination
225 Storing signatures
226
227
228
230 podman(1), podman-pull(1), podman-login(1), containers-certs.d(5)
231
232
233
234 podman-push(1)()