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 DESTINATION is the location the container image is pushed to. It sup‐
31 ports all transports from containers-transports(5). If no transport is
32 specified, the docker (i.e., container registry) transport is used.
33 For remote clients, including Mac and Windows (excluding WSL2) ma‐
34 chines, docker is the only supported transport.
35
36
37 # Push to a container registry
38 $ podman push quay.io/podman/stable
39
40 # Push to a container registry via the docker transport
41 $ podman push docker://quay.io/podman/stable
42
43 # Push to a container registry with another tag
44 $ podman push myimage quay.io/username/myimage
45
46 # Push to a local directory
47 $ podman push myimage dir:/tmp/myimage
48
49 # Push to a tarball in the docker-archive format
50 $ podman push myimage docker-archive:/tmp/myimage
51
52 # Push to a local docker daemon
53 $ sudo podman push myimage docker-daemon:docker.io/library/myimage:33
54
55 # Push to a tarball in the OCI format
56 $ podman push myimage oci-archive:/tmp/myimage
57
58
59
61 --authfile=path
62 Path of the authentication file. Default is ${XDG_RUNTIME_DIR}/contain‐
63 ers/auth.json, which is set using podman login. If the authorization
64 state is not found there, $HOME/.docker/config.json is checked, which
65 is set using docker login.
66
67
68 Note: You can also override the default path of the authentication file
69 by setting the REGISTRY_AUTH_FILE environment variable. export REG‐
70 ISTRY_AUTH_FILE=path
71
72
73 --cert-dir=path
74 Use certificates at path (*.crt, *.cert, *.key) to connect to the reg‐
75 istry. (Default: /etc/containers/certs.d) Please refer to containers-
76 certs.d(5) for details. (This option is not available with the remote
77 Podman client, including Mac and Windows (excluding WSL2) machines)
78
79
80 --compress
81 Compress tarball image layers when pushing to a directory using the
82 'dir' transport. (default is same compression type, compressed or un‐
83 compressed, as source) Note: This flag can only be set when using the
84 dir transport
85
86
87 --compression-format COMPRESSION
88 Specifies the compression format to use. Supported values are: gzip,
89 zstd and zstd:chunked. The default is gzip.
90
91
92 --creds=[username[:password]]
93 The [username[:password]] to use to authenticate with the registry if
94 required. If one or both values are not supplied, a command line
95 prompt will appear and the value can be entered. The password is en‐
96 tered without echo.
97
98
99 --digestfile Digestfile
100 After copying the image, write the digest of the resulting image to the
101 file. (This option is not available with the remote Podman client, in‐
102 cluding Mac and Windows (excluding WSL2) machines)
103
104
105 --disable-content-trust
106 This is a Docker specific option to disable image verification to a
107 Docker registry and is not supported by Podman. This flag is a NOOP
108 and provided solely for scripting compatibility.
109
110
111 --format, -f=format
112 Manifest Type (oci, v2s2, or v2s1) to use when pushing an image.
113
114
115 --quiet, -q
116 When writing the output image, suppress progress output
117
118
119 --remove-signatures
120 Discard any pre-existing signatures in the image. (This option is not
121 available with the remote Podman client, including Mac and Windows (ex‐
122 cluding WSL2) machines)
123
124
125 --sign-by=key
126 Add a signature at the destination using the specified key. (This op‐
127 tion is not available with the remote Podman client, including Mac and
128 Windows (excluding WSL2) machines)
129
130
131 --tls-verify
132 Require HTTPS and verify certificates when contacting registries (de‐
133 fault: true). If explicitly set to true, then TLS verification will be
134 used. If set to false, then TLS verification will not be used. If not
135 specified, TLS verification will be used unless the target registry is
136 listed as an insecure registry in registries.conf.
137
138
140 This example pushes the image specified by the imageID to a local di‐
141 rectory in docker format.
142
143
144 # podman push imageID dir:/path/to/image
145
146
147 This example pushes the image specified by the imageID to a local di‐
148 rectory in oci format.
149
150
151 # podman push imageID oci-archive:/path/to/layout:image:tag
152
153
154 This example pushes the image specified by the imageID to a container
155 registry named registry.example.com
156
157
158 # podman push imageID docker://registry.example.com/repository:tag
159
160
161 This example pushes the image specified by the imageID to a container
162 registry named registry.example.com and saves the digest in the speci‐
163 fied digestfile.
164
165
166 # podman push --digestfile=/tmp/mydigest imageID docker://registry.ex‐
167 ample.com/repository:tag
168
169
170 This example pushes the image specified by the imageID and puts it into
171 the local docker container store
172
173
174 # podman push imageID docker-daemon:image:tag
175
176
177 This example pushes the alpine image to umohnani/alpine on dockerhub
178 and reads the creds from the path given to --authfile
179
180
181 # podman push --authfile temp-auths/myauths.json alpine docker://docker.io/umohnani/alpine
182 Getting image source signatures
183 Copying blob sha256:5bef08742407efd622d243692b79ba0055383bbce12900324f75e56f589aedb0
184 4.03 MB / 4.03 MB [========================================================] 1s
185 Copying config sha256:ad4686094d8f0186ec8249fc4917b71faa2c1030d7b5a025c29f26e19d95c156
186 1.41 KB / 1.41 KB [========================================================] 1s
187 Writing manifest to image destination
188 Storing signatures
189
190
191
192 This example pushes the rhel7 image to rhel7-dir with the "oci" mani‐
193 fest type
194
195
196 # podman push --format oci registry.access.redhat.com/rhel7 dir:rhel7-dir
197 Getting image source signatures
198 Copying blob sha256:9cadd93b16ff2a0c51ac967ea2abfadfac50cfa3af8b5bf983d89b8f8647f3e4
199 71.41 MB / 71.41 MB [======================================================] 9s
200 Copying blob sha256:4aa565ad8b7a87248163ce7dba1dd3894821aac97e846b932ff6b8ef9a8a508a
201 1.21 KB / 1.21 KB [========================================================] 0s
202 Copying config sha256:f1b09a81455c351eaa484b61aacd048ab613c08e4c5d1da80c4c46301b03cf3b
203 3.01 KB / 3.01 KB [========================================================] 0s
204 Writing manifest to image destination
205 Storing signatures
206
207
208
210 podman(1), podman-pull(1), podman-login(1), containers-certs.d(5), con‐
211 tainers-registries.conf(5), containers-transports(5)
212
213
214
215 podman-push(1)()