1podman-pull(1) General Commands Manual podman-pull(1)
2
3
4
6 podman-pull - Pull an image from a registry
7
8
10 podman pull [options] source [source...]
11
12
13 podman image pull [options] source [source...]
14
15
16 podman pull [options] [transport]name[:tag|@digest]
17
18
19 podman image pull [options] [transport]name[:tag|@digest]
20
21
23 podman pull copies an image from a registry onto the local machine. The
24 command can pull one or more images. If the image reference in the
25 command line argument does not contain a registry, it is referred to as
26 ashort-name reference. If the image is a 'short-name' reference, Podman
27 prompts the user for the specific container registry to pull the image
28 from, if an alias for the short-name has not been specified in the
29 short-name-aliases.conf. If an image tag is not specified, podman pull
30 defaults to the image with the latest tag (if it exists) and pulls it.
31 After the image is pulled, podman prints the full image ID. podman
32 pull can also pull images using a digest podman pull image@digest and
33 can also be used to pull images from archives and local storage using
34 different transports. IMPORTANT: Images are stored in local image
35 storage.
36
37
39 SOURCE is the location from which the container image is pulled from.
40 It supports all transports from containers-transports(5). If no trans‐
41 port is specified, the input is subject to short-name resolution and
42 the docker (i.e., container registry) transport is used. For remote
43 clients, including Mac and Windows (excluding WSL2) machines, docker is
44 the only supported transport.
45
46 # Pull from a container registry
47 $ podman pull quay.io/username/myimage
48
49 # Pull from a container registry with short-name resolution
50 $ podman pull fedora
51
52 # Pull from a container registry via the docker transport
53 $ podman pull docker://quay.io/username/myimage
54
55 # Pull from a local directory
56 $ podman pull dir:/tmp/myimage
57
58 # Pull from a tarball in the docker-archive format
59 $ podman pull docker-archive:/tmp/myimage
60
61 # Pull from a local docker daemon
62 $ sudo podman pull docker-daemon:docker.io/library/myimage:33
63
64 # Pull from a tarball in the OCI-archive format
65 $ podman pull oci-archive:/tmp/myimage
66
67
68
70 --all-tags, -a
71 All tagged images in the repository are pulled.
72
73
74 *IMPORTANT: When using the all-tags flag, Podman does not iterate over
75 the search registries in the containers-registries.conf(5) but always
76 uses docker.io for unqualified image names.*
77
78
79 --arch=ARCH
80 Override the architecture, defaults to hosts, of the image to be
81 pulled. For example, arm. Unless overridden, subsequent lookups of the
82 same image in the local storage matches this architecture, regardless
83 of the host.
84
85
86 --authfile=path
87 Path of the authentication file. Default is ${XDG_RUNTIME_DIR}/contain‐
88 ers/auth.json on Linux, and $HOME/.config/containers/auth.json on Win‐
89 dows/macOS. The file is created by podman login. If the authorization
90 state is not found there, $HOME/.docker/config.json is checked, which
91 is set using docker login.
92
93
94 Note: There is also the option to override the default path of the au‐
95 thentication file by setting the REGISTRY_AUTH_FILE environment vari‐
96 able. This can be done with export REGISTRY_AUTH_FILE=path.
97
98
99 --cert-dir=path
100 Use certificates at path (*.crt, *.cert, *.key) to connect to the reg‐
101 istry. (Default: /etc/containers/certs.d) For details, see containers-
102 certs.d(5). (This option is not available with the remote Podman
103 client, including Mac and Windows (excluding WSL2) machines)
104
105
106 --creds=[username[:password]]
107 The [username[:password]] to use to authenticate with the registry, if
108 required. If one or both values are not supplied, a command line
109 prompt appears and the value can be entered. The password is entered
110 without echo.
111
112
113 Note that the specified credentials are only used to authenticate
114 against target registries. They are not used for mirrors or when the
115 registry gets rewritten (see containers-registries.conf(5)); to authen‐
116 ticate against those consider using a containers-auth.json(5) file.
117
118
119 --decryption-key=key[:passphrase]
120 The [key[:passphrase]] to be used for decryption of images. Key can
121 point to keys and/or certificates. Decryption is tried with all keys.
122 If the key is protected by a passphrase, it is required to be passed in
123 the argument and omitted otherwise.
124
125
126 --disable-content-trust
127 This is a Docker-specific option to disable image verification to a
128 container registry and is not supported by Podman. This option is a
129 NOOP and provided solely for scripting compatibility.
130
131
132 --help, -h
133 Print the usage statement.
134
135
136 --os=OS
137 Override the OS, defaults to hosts, of the image to be pulled. For ex‐
138 ample, windows. Unless overridden, subsequent lookups of the same im‐
139 age in the local storage matches this OS, regardless of the host.
140
141
142 --platform=OS/ARCH
143 Specify the platform for selecting the image. (Conflicts with --arch
144 and --os) The --platform option can be used to override the current ar‐
145 chitecture and operating system. Unless overridden, subsequent lookups
146 of the same image in the local storage matches this platform, regard‐
147 less of the host.
148
149
150 --quiet, -q
151 Suppress output information when pulling images
152
153
154 --tls-verify
155 Require HTTPS and verify certificates when contacting registries (de‐
156 fault: true). If explicitly set to true, TLS verification is used. If
157 set to false, TLS verification is not used. If not specified, TLS ver‐
158 ification is used unless the target registry is listed as an insecure
159 registry in containers-registries.conf(5)
160
161
162 --variant=VARIANT
163 Use VARIANT instead of the default architecture variant of the con‐
164 tainer image. Some images can use multiple variants of the arm archi‐
165 tectures, such as arm/v5 and arm/v7.
166
167
169 short-name-aliases.conf (/var/cache/containers/short-name-aliases.conf,
170 $HOME/.cache/containers/short-name-aliases.conf)
171
172
173 When users specify images that do not include the container registry
174 where the image is stored, this is called a short name. The use of un‐
175 qualified-search registries entails an ambiguity as it is unclear from
176 which registry a given image, referenced by a short name, may be pulled
177 from.
178
179
180 Using short names is subject to the risk of hitting squatted registry
181 namespaces. If the unqualified-search registries are set to ["public-
182 registry.com", "my-private-registry.com"] an attacker may take over a
183 namespace of public-registry.com such that an image may be pulled from
184 public-registry.com instead of the intended source my-private-reg‐
185 istry.com.
186
187
188 While it is highly recommended to always use fully-qualified image ref‐
189 erences, existing deployments using short names may not be easily
190 changed. To circumvent the aforementioned ambiguity, so called short-
191 name aliases can be configured that point to a fully-qualified image
192 reference. Distributions often ship a default shortnames.conf expansion
193 file in /etc/containers/registries.conf.d/ directory. Administrators
194 can use this directory to add their own local short-name expansion
195 files.
196
197
198 When pulling an image, if the user does not specify the complete reg‐
199 istry, container engines attempt to expand the short-name into a full
200 name. If the command is executed with a tty, the user is prompted to
201 select a registry from the default list unqualified registries defined
202 in registries.conf. The user's selection is then stored in a cache file
203 to be used in all future short-name expansions. Rootful short-names are
204 stored in /var/cache/containers/short-name-aliases.conf. Rootless
205 short-names are stored in the $HOME/.cache/containers/short-name-
206 aliases.conf file.
207
208
209 For more information on short-names, see containers-registries.conf(5)
210
211
212 registries.conf (/etc/containers/registries.conf)
213
214
215 registries.conf is the configuration file which specifies which con‐
216 tainer registries is consulted when completing image names which do not
217 include a registry or domain portion.
218
219
220 NOTE: Use the environment variable TMPDIR to change the temporary stor‐
221 age location of downloaded container images. Podman defaults to use
222 /var/tmp.
223
224
226 Pull a single image with short name resolution.
227
228 $ podman pull alpine:latest
229 Resolved "alpine" as an alias (/etc/containers/registries.conf.d/000-shortnames.conf)
230 Trying to pull docker.io/library/alpine:latest...
231 Getting image source signatures
232 Copying blob 5843afab3874 done
233 Copying config d4ff818577 done
234 Writing manifest to image destination
235 Storing signatures
236 d4ff818577bc193b309b355b02ebc9220427090057b54a59e73b79bdfe139b83
237
238
239
240 Pull multiple images with/without short name resolution.
241
242 podman pull busybox:musl alpine quay.io/libpod/cirros
243 Trying to pull docker.io/library/busybox:musl...
244 Getting image source signatures
245 Copying blob 0c52b060233b [--------------------------------------] 0.0b / 0.0b
246 Copying config 9ad2c435a8 done
247 Writing manifest to image destination
248 Storing signatures
249 9ad2c435a887e3f723654e09b48563de44aa3c7950246b2e9305ec85dd3422db
250 Trying to pull docker.io/library/alpine:latest...
251 Getting image source signatures
252 Copying blob 5843afab3874 [--------------------------------------] 0.0b / 0.0b
253 Copying config d4ff818577 done
254 Writing manifest to image destination
255 Storing signatures
256 d4ff818577bc193b309b355b02ebc9220427090057b54a59e73b79bdfe139b83
257 Trying to pull quay.io/libpod/cirros:latest...
258 Getting image source signatures
259 Copying blob 8da581cc9286 done
260 Copying blob 856628d95d17 done
261 Copying blob f513001ba4ab done
262 Copying config 3c82e4d066 done
263 Writing manifest to image destination
264 Storing signatures
265 3c82e4d066cf6f9e50efaead6e3ff7fddddf5527826afd68e5a969579fc4db4a
266
267
268
269 Pull an image using its digest.
270
271 $ podman pull alpine@sha256:d7342993700f8cd7aba8496c2d0e57be0666e80b4c441925fc6f9361fa81d10e
272 Trying to pull docker.io/library/alpine@sha256:d7342993700f8cd7aba8496c2d0e57be0666e80b4c441925fc6f9361fa81d10e...
273 Getting image source signatures
274 Copying blob 188c0c94c7c5 done
275 Copying config d6e46aa247 done
276 Writing manifest to image destination
277 Storing signatures
278 d6e46aa2470df1d32034c6707c8041158b652f38d2a9ae3d7ad7e7532d22ebe0
279
280
281
282 Pull an image by specifying an authentication file.
283
284 $ podman pull --authfile temp-auths/myauths.json docker://docker.io/umohnani/finaltest
285 Trying to pull docker.io/umohnani/finaltest:latest...Getting image source signatures
286 Copying blob sha256:6d987f6f42797d81a318c40d442369ba3dc124883a0964d40b0c8f4f7561d913
287 1.90 MB / 1.90 MB [========================================================] 0s
288 Copying config sha256:ad4686094d8f0186ec8249fc4917b71faa2c1030d7b5a025c29f26e19d95c156
289 1.41 KB / 1.41 KB [========================================================] 0s
290 Writing manifest to image destination
291 Storing signatures
292 03290064078cb797f3e0a530e78c20c13dd22a3dd3adf84a5da2127b48df0438
293
294
295
296 Pull an image by authenticating to a registry.
297
298 $ podman pull --creds testuser:testpassword docker.io/umohnani/finaltest
299 Trying to pull docker.io/umohnani/finaltest:latest...Getting image source signatures
300 Copying blob sha256:6d987f6f42797d81a318c40d442369ba3dc124883a0964d40b0c8f4f7561d913
301 1.90 MB / 1.90 MB [========================================================] 0s
302 Copying config sha256:ad4686094d8f0186ec8249fc4917b71faa2c1030d7b5a025c29f26e19d95c156
303 1.41 KB / 1.41 KB [========================================================] 0s
304 Writing manifest to image destination
305 Storing signatures
306 03290064078cb797f3e0a530e78c20c13dd22a3dd3adf84a5da2127b48df0438
307
308
309
310 Pull an image using tls verification.
311
312 $ podman pull --tls-verify=false --cert-dir image/certs docker.io/umohnani/finaltest
313 Trying to pull docker.io/umohnani/finaltest:latest...Getting image source signatures
314 Copying blob sha256:6d987f6f42797d81a318c40d442369ba3dc124883a0964d40b0c8f4f7561d913
315 1.90 MB / 1.90 MB [========================================================] 0s
316 Copying config sha256:ad4686094d8f0186ec8249fc4917b71faa2c1030d7b5a025c29f26e19d95c156
317 1.41 KB / 1.41 KB [========================================================] 0s
318 Writing manifest to image destination
319 Storing signatures
320 03290064078cb797f3e0a530e78c20c13dd22a3dd3adf84a5da2127b48df0438
321
322
323
324 Pull an image by overriding the host architecture.
325
326 $ podman pull --arch=arm arm32v7/debian:stretch
327 Trying to pull docker.io/arm32v7/debian:stretch...
328 Getting image source signatures
329 Copying blob b531ae4a3925 done
330 Copying config 3cba58dad5 done
331 Writing manifest to image destination
332 Storing signatures
333 3cba58dad5d9b35e755b48b634acb3fdd185ab1c996ac11510cc72c17780e13c
334
335
336
338 podman(1), podman-push(1), podman-login(1), containers-certs.d(5), con‐
339 tainers-registries.conf(5), containers-transports(5)
340
341
343 July 2017, Originally compiled by Urvashi Mohnani umohnani@redhat.com
344 ⟨mailto:umohnani@redhat.com⟩
345
346
347
348 podman-pull(1)