1podman-pull(1)()                                              podman-pull(1)()
2
3
4

NAME

6       podman-pull - Pull an image from a registry
7
8

SYNOPSIS

10       podman pull [options] source
11
12
13       podman image pull [options] source
14
15
16       podman pull [options] [transport]name[:tag|@digest]
17
18
19       podman image pull [options] [transport]name[:tag|@digest]
20
21

DESCRIPTION

23       Copies an image from a registry onto the local machine. The podman pull
24       command pulls an image.  If the image reference in the command line ar‐
25       gument  does  not  contain a registry, it is referred to as ashort-name
26       reference. If the image is a 'short-name' reference, Podman will prompt
27       the user for the specific container registry to pull the image from, if
28       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 will print the full image ID.  podman
32       pull can also pull an image using its digest podman pull  image@digest.
33       podman  pull can be used to pull images from archives and local storage
34       using different transports.
35
36

Image storage

38       Images are stored in local image storage.
39
40

SOURCE

42       The SOURCE is the location from which the container images are pulled.
43        The Image "SOURCE" uses  a  "transport":"details"  format.   Only  the
44       docker (container registry)
45        transport is allowed for remote access.
46
47
48       Multiple transports are supported:
49
50
51       dir:path
52         An existing local directory path storing the manifest, layer tarballs
53       and signatures as individual files. This
54         is a non-standardized format, primarily useful for debugging or  non‐
55       invasive container inspection.
56
57
58              $ podman pull dir:/tmp/myimage
59
60
61
62       docker://docker-reference (Default)
63         An  image  reference stored in a remote container image registry. The
64       reference can include a path to a
65         specific registry; if it does not,  the  registries  listed  in  reg‐
66       istries.conf will be queried to find a matching
67         image. By default, credentials from podman login (stored at $XDG_RUN‐
68       TIME_DIR/containers/auth.json by default)
69         will  be used to authenticate; if these cannot be found, we will fall
70       back to using credentials in
71         $HOME/.docker/config.json.
72
73
74              $ podman pull quay.io/username/myimage
75
76
77
78       docker-archive:path[:docker-reference]
79         An  image is stored in the docker save formatted file.  docker-refer‐
80       ence is only used when creating such a
81         file, and it must not contain a digest.
82
83
84              $ podman pull docker-archive:/tmp/myimage
85
86
87
88       docker-daemon:docker-reference
89         An image in docker-reference format stored in the docker  daemon  in‐
90       ternal   storage.   The  docker-reference  can  also  be  an  image  ID
91       (docker-daemon:algo:digest).
92
93
94              $ sudo podman pull docker-daemon:docker.io/library/myimage:33
95
96
97
98       oci-archive:path:tag
99         An image tag in a directory compliant with "Open Container Image Lay‐
100       out Specification" at path.
101
102
103              $ podman pull oci-archive:/tmp/myimage
104
105
106

OPTIONS

108   --all-tags, a
109       All tagged images in the repository will be pulled.
110
111
112       Note:  When  using  the all-tags flag, Podman will not iterate over the
113       search registries in the containers-registries.conf(5) but will  always
114       use docker.io for unqualified image names.
115
116
117   --arch=ARCH
118       Override  the  architecture,  defaults  to  hosts,  of  the image to be
119       pulled. For example, arm.
120
121
122   --authfile=path
123       Path of the authentication file. Default is ${XDG_RUNTIME_DIR}/contain‐
124       ers/auth.json,  which  is set using podman login.  If the authorization
125       state is not found there, $HOME/.docker/config.json is  checked,  which
126       is set using docker login.
127
128
129       Note: You can also override the default path of the authentication file
130       by setting the REGISTRY_AUTH_FILE  environment  variable.  export  REG‐
131       ISTRY_AUTH_FILE=path
132
133
134   --cert-dir=path
135       Use  certificates at path (*.crt, *.cert, *.key) to connect to the reg‐
136       istry.  Please refer to containers-certs.d(5) for details. (This option
137       is not available with the remote Podman client)
138
139
140   --creds=[username[:password]]
141       The  [username[:password]]  to use to authenticate with the registry if
142       required.  If one or both values  are  not  supplied,  a  command  line
143       prompt  will  appear and the value can be entered.  The password is en‐
144       tered without echo.
145
146
147   --disable-content-trust
148       This is a Docker specific option to disable  image  verification  to  a
149       Docker  registry  and  is not supported by Podman.  This flag is a NOOP
150       and provided solely for scripting compatibility.
151
152
153   --help, -h
154       Print usage statement
155
156
157   --os=OS
158       Override the OS, defaults to hosts, of the image to be pulled. For  ex‐
159       ample, windows.
160
161
162   --platform=OS/ARCH
163       Specify  the  platform for selecting the image.  (Conflicts with --arch
164       and --os) The --platform option can be used to override the current ar‐
165       chitecture and operating system.
166
167
168   --quiet, -q
169       Suppress output information when pulling images
170
171
172   --tls-verify=true|false
173       Require  HTTPS  and verify certificates when contacting registries (de‐
174       fault: true). If explicitly set to true, then TLS verification will  be
175       used.  If  set to false, then TLS verification will not be used. If not
176       specified, TLS verification will be used unless the target registry  is
177       listed as an insecure registry in registries.conf.
178
179
180   --variant=VARIANT
181       Use  VARIANT  instead  of  the default architecture variant of the con‐
182       tainer image.  Some images can use multiple variants of the arm  archi‐
183       tectures, such as arm/v5 and arm/v7.
184
185

EXAMPLES

187              $ podman pull alpine:latest
188              Trying to pull registry.access.redhat.com/alpine:latest... Failed
189              Trying to pull registry.fedoraproject.org/alpine:latest... Failed
190              Trying to pull docker.io/library/alpine:latest...Getting image source signatures
191              Copying blob sha256:88286f41530e93dffd4b964e1db22ce4939fffa4a4c665dab8591fbab03d4926
192               1.90 MB / 1.90 MB [========================================================] 0s
193              Copying config sha256:76da55c8019d7a47c347c0dceb7a6591144d232a7dd616242a367b8bed18ecbc
194               1.48 KB / 1.48 KB [========================================================] 0s
195              Writing manifest to image destination
196              Storing signatures
197              04660052281190168dbb2362eb15bf7067a8dc642d2498055e0e72efa961a4b6
198
199
200
201              $ podman pull alpine@sha256:d7342993700f8cd7aba8496c2d0e57be0666e80b4c441925fc6f9361fa81d10e
202              Trying to pull docker.io/library/alpine@sha256:d7342993700f8cd7aba8496c2d0e57be0666e80b4c441925fc6f9361fa81d10e...
203              Getting image source signatures
204              Copying blob 188c0c94c7c5 done
205              Copying config d6e46aa247 done
206              Writing manifest to image destination
207              Storing signatures
208              d6e46aa2470df1d32034c6707c8041158b652f38d2a9ae3d7ad7e7532d22ebe0
209
210
211
212              $ podman pull --authfile temp-auths/myauths.json docker://docker.io/umohnani/finaltest
213              Trying to pull docker.io/umohnani/finaltest:latest...Getting image source signatures
214              Copying blob sha256:6d987f6f42797d81a318c40d442369ba3dc124883a0964d40b0c8f4f7561d913
215               1.90 MB / 1.90 MB [========================================================] 0s
216              Copying config sha256:ad4686094d8f0186ec8249fc4917b71faa2c1030d7b5a025c29f26e19d95c156
217               1.41 KB / 1.41 KB [========================================================] 0s
218              Writing manifest to image destination
219              Storing signatures
220              03290064078cb797f3e0a530e78c20c13dd22a3dd3adf84a5da2127b48df0438
221
222
223
224              $ podman pull --creds testuser:testpassword docker.io/umohnani/finaltest
225              Trying to pull docker.io/umohnani/finaltest:latest...Getting image source signatures
226              Copying blob sha256:6d987f6f42797d81a318c40d442369ba3dc124883a0964d40b0c8f4f7561d913
227               1.90 MB / 1.90 MB [========================================================] 0s
228              Copying config sha256:ad4686094d8f0186ec8249fc4917b71faa2c1030d7b5a025c29f26e19d95c156
229               1.41 KB / 1.41 KB [========================================================] 0s
230              Writing manifest to image destination
231              Storing signatures
232              03290064078cb797f3e0a530e78c20c13dd22a3dd3adf84a5da2127b48df0438
233
234
235
236              $ podman pull --tls-verify=false --cert-dir image/certs docker.io/umohnani/finaltest
237              Trying to pull docker.io/umohnani/finaltest:latest...Getting image source signatures
238              Copying blob sha256:6d987f6f42797d81a318c40d442369ba3dc124883a0964d40b0c8f4f7561d913
239               1.90 MB / 1.90 MB [========================================================] 0s
240              Copying config sha256:ad4686094d8f0186ec8249fc4917b71faa2c1030d7b5a025c29f26e19d95c156
241               1.41 KB / 1.41 KB [========================================================] 0s
242              Writing manifest to image destination
243              Storing signatures
244              03290064078cb797f3e0a530e78c20c13dd22a3dd3adf84a5da2127b48df0438
245
246
247
248              $ podman pull --arch=arm arm32v7/debian:stretch
249              Trying to pull docker.io/arm32v7/debian:stretch...
250              Getting image source signatures
251              Copying blob b531ae4a3925 done
252              Copying config 3cba58dad5 done
253              Writing manifest to image destination
254              Storing signatures
255              3cba58dad5d9b35e755b48b634acb3fdd185ab1c996ac11510cc72c17780e13c
256
257
258

FILES

260       short-name-aliases.conf (/var/cache/containers/short-name-aliases.conf,
261       $HOME/.cache/containers/short-name-aliases.conf)
262
263
264       When users specify images that do not include  the  container  registry
265       where  the image is stored, this is called a short name. The use of un‐
266       qualified-search registries entails an ambiguity as it is unclear  from
267       which registry a given image, referenced by a short name, may be pulled
268       from.
269
270
271       Using short names is subject to the risk of hitting  squatted  registry
272       namespaces.  If  the  unqualified-search  registries  are set to ["pub‐
273       lic-registry.com",  "my-private-registry.com"]  an  attacker  may  take
274       over  a  namespace  of  public-registry.com  such  that an image may be
275       pulled from public-registry.com instead of the intended source  my-pri‐
276       vate-registry.com.
277
278
279       While it is highly recommended to always use fully-qualified image ref‐
280       erences, existing deployments using  short  names  may  not  be  easily
281       changed.   To   circumvent  the  aforementioned  ambiguity,  so  called
282       short-name aliases can be configured that point  to  a  fully-qualified
283       image reference. Distributions often ship a default shortnames.conf ex‐
284       pansion file in /etc/containers/registries.conf.d/ directory.  Adminis‐
285       trators can use this directory to add their own local short-name expan‐
286       sion files.
287
288
289       When pulling an image, if the user does not specify the  complete  reg‐
290       istry,  container  engines attempt to expand the short-name into a full
291       name. If the command is executed with a tty, the user will be  prompted
292       to  select  a registry from the default list unqualified registries de‐
293       fined in registries.conf. The user's selection  is  then  stored  in  a
294       cache  file  to  be  used in all future short-name expansions. Rootfull
295       short-names       are       stored        in        /var/cache/contain‐
296       ers/short-name-aliases.conf.  Rootless  short-names  are  stored in the
297       $HOME/.cache/containers/short-name-aliases.conf file.
298
299
300       For more information on short-names, see containers-registries.conf(5)
301
302
303       registries.conf (/etc/containers/registries.conf)
304
305
306       registries.conf is the configuration file which  specifies  which  con‐
307       tainer registries should be consulted when completing image names which
308       do not include a registry or domain portion.
309
310
311       NOTE: Use the environment variable TMPDIR to change the temporary stor‐
312       age  location  of  downloaded  container images. Podman defaults to use
313       /var/tmp.
314
315

SEE ALSO

317       podman(1), podman-push(1), podman-login(1), containers-certs.d(5), con‐
318       tainers-registries.conf(5)
319
320

HISTORY

322       July  2017,  Originally compiled by Urvashi Mohnani umohnani@redhat.com
323       ⟨mailto:umohnani@redhat.com⟩
324
325
326
327                                                              podman-pull(1)()
Impressum