github.com/containers/podman/v5@v5.1.0-rc1/docs/source/markdown/podman-pull.1.md.in (about) 1 % podman-pull 1 2 3 ## NAME 4 podman\-pull - Pull an image from a registry 5 6 ## SYNOPSIS 7 **podman pull** [*options*] *source* [*source*...] 8 9 **podman image pull** [*options*] *source* [*source*...] 10 11 **podman pull** [*options*] [*transport*]*name*[:*tag*|@*digest*] 12 13 **podman image pull** [*options*] [*transport*]*name*[:*tag*|@*digest*] 14 15 ## DESCRIPTION 16 podman pull copies an image from a registry onto the local machine. The command can pull one or more images. If the image reference in the command line argument does not contain a registry, it is referred to as a`short-name` reference. If the image is a 'short-name' reference, Podman prompts the user for the specific container registry to pull the image from, if an alias for the short-name has not been specified in the `short-name-aliases.conf`. If an image tag is not specified, **podman pull** defaults to the image with the **latest** tag (if it exists) and pulls it. After the image is pulled, podman prints the full image ID. **podman pull** can also pull images using a digest **podman pull** *image*@*digest* and can also be used to pull images from archives and local storage using different transports. 17 *IMPORTANT: Images are stored in local image storage.* 18 19 ## SOURCE 20 SOURCE is the location from which the container image is pulled from. It supports all transports from **[containers-transports(5)](https://github.com/containers/image/blob/main/docs/containers-transports.5.md)**. If no transport is specified, the input is subject to short-name resolution and the `docker` (i.e., container registry) transport is used. For remote clients, including Mac and Windows (excluding WSL2) machines, `docker` is the only supported transport. 21 22 ``` 23 # Pull from a container registry 24 $ podman pull quay.io/username/myimage 25 26 # Pull from a container registry with short-name resolution 27 $ podman pull fedora 28 29 # Pull from a container registry via the docker transport 30 $ podman pull docker://quay.io/username/myimage 31 32 # Pull from a local directory 33 $ podman pull dir:/tmp/myimage 34 35 # Pull from a tarball in the docker-archive format 36 $ podman pull docker-archive:/tmp/myimage 37 38 # Pull from a local docker daemon 39 $ sudo podman pull docker-daemon:docker.io/library/myimage:33 40 41 # Pull from a tarball in the OCI-archive format 42 $ podman pull oci-archive:/tmp/myimage 43 ``` 44 45 ## OPTIONS 46 #### **--all-tags**, **-a** 47 48 All tagged images in the repository are pulled. 49 50 *IMPORTANT: When using the all-tags flag, Podman does not iterate over the search registries in the **[containers-registries.conf(5)](https://github.com/containers/image/blob/main/docs/containers-registries.conf.5.md)** but always uses docker.io for unqualified image names.* 51 52 @@option arch 53 54 @@option authfile 55 56 @@option cert-dir 57 58 @@option creds 59 60 @@option decryption-key 61 62 @@option disable-content-trust 63 64 #### **--help**, **-h** 65 66 Print the usage statement. 67 68 @@option os.pull 69 70 @@option platform 71 72 #### **--quiet**, **-q** 73 74 Suppress output information when pulling images 75 76 @@option retry 77 78 @@option retry-delay 79 80 @@option tls-verify 81 82 @@option variant.container 83 84 ## FILES 85 86 **short-name-aliases.conf** (`/var/cache/containers/short-name-aliases.conf`, `$HOME/.cache/containers/short-name-aliases.conf`) 87 88 When users specify images that do not include the container registry where the 89 image is stored, this is called a short name. The use of unqualified-search registries entails an ambiguity as it is unclear from which registry a given image, referenced by a short name, may be pulled from. 90 91 Using short names is subject to the risk of hitting squatted registry namespaces. If the unqualified-search registries are set to ["public-registry.com", "my-private-registry.com"] an attacker may take over a namespace of `public-registry.com` such that an image may be pulled from `public-registry.com` instead of the intended source `my-private-registry.com`. 92 93 While it is highly recommended to always use fully-qualified image references, existing deployments using short names may not be easily changed. To circumvent the aforementioned ambiguity, so called short-name aliases can be configured that point to a fully-qualified image reference. Distributions often ship a default shortnames.conf expansion file in /etc/containers/registries.conf.d/ directory. Administrators can use this directory to add their own local short-name expansion files. 94 95 When pulling an image, if the user does not specify the complete registry, container engines attempt to expand the short-name into a full name. If the command is executed with a tty, the user is prompted to select a registry from the 96 default list unqualified registries defined in registries.conf. The user's selection is then stored in a cache file to be used in all future short-name expansions. Rootful short-names are stored in /var/cache/containers/short-name-aliases.conf. Rootless short-names are stored in the $HOME/.cache/containers/short-name-aliases.conf file. 97 98 For more information on short-names, see `containers-registries.conf(5)` 99 100 **registries.conf** (`/etc/containers/registries.conf`) 101 102 registries.conf is the configuration file which specifies which container registries is consulted when completing image names which do not include a registry or domain portion. 103 104 NOTE: Use the environment variable `TMPDIR` to change the temporary storage location of downloaded container images. Podman defaults to use `/var/tmp`. 105 106 107 ## EXAMPLES 108 Pull a single image with short name resolution. 109 ``` 110 $ podman pull alpine:latest 111 Resolved "alpine" as an alias (/etc/containers/registries.conf.d/000-shortnames.conf) 112 Trying to pull docker.io/library/alpine:latest... 113 Getting image source signatures 114 Copying blob 5843afab3874 done 115 Copying config d4ff818577 done 116 Writing manifest to image destination 117 Storing signatures 118 d4ff818577bc193b309b355b02ebc9220427090057b54a59e73b79bdfe139b83 119 ``` 120 121 Pull multiple images with/without short name resolution. 122 ``` 123 podman pull busybox:musl alpine quay.io/libpod/cirros 124 Trying to pull docker.io/library/busybox:musl... 125 Getting image source signatures 126 Copying blob 0c52b060233b [--------------------------------------] 0.0b / 0.0b 127 Copying config 9ad2c435a8 done 128 Writing manifest to image destination 129 Storing signatures 130 9ad2c435a887e3f723654e09b48563de44aa3c7950246b2e9305ec85dd3422db 131 Trying to pull docker.io/library/alpine:latest... 132 Getting image source signatures 133 Copying blob 5843afab3874 [--------------------------------------] 0.0b / 0.0b 134 Copying config d4ff818577 done 135 Writing manifest to image destination 136 Storing signatures 137 d4ff818577bc193b309b355b02ebc9220427090057b54a59e73b79bdfe139b83 138 Trying to pull quay.io/libpod/cirros:latest... 139 Getting image source signatures 140 Copying blob 8da581cc9286 done 141 Copying blob 856628d95d17 done 142 Copying blob f513001ba4ab done 143 Copying config 3c82e4d066 done 144 Writing manifest to image destination 145 Storing signatures 146 3c82e4d066cf6f9e50efaead6e3ff7fddddf5527826afd68e5a969579fc4db4a 147 ``` 148 149 Pull an image using its digest. 150 ``` 151 $ podman pull alpine@sha256:d7342993700f8cd7aba8496c2d0e57be0666e80b4c441925fc6f9361fa81d10e 152 Trying to pull docker.io/library/alpine@sha256:d7342993700f8cd7aba8496c2d0e57be0666e80b4c441925fc6f9361fa81d10e... 153 Getting image source signatures 154 Copying blob 188c0c94c7c5 done 155 Copying config d6e46aa247 done 156 Writing manifest to image destination 157 Storing signatures 158 d6e46aa2470df1d32034c6707c8041158b652f38d2a9ae3d7ad7e7532d22ebe0 159 ``` 160 161 Pull an image by specifying an authentication file. 162 ``` 163 $ podman pull --authfile temp-auths/myauths.json docker://docker.io/umohnani/finaltest 164 Trying to pull docker.io/umohnani/finaltest:latest...Getting image source signatures 165 Copying blob sha256:6d987f6f42797d81a318c40d442369ba3dc124883a0964d40b0c8f4f7561d913 166 1.90 MB / 1.90 MB [========================================================] 0s 167 Copying config sha256:ad4686094d8f0186ec8249fc4917b71faa2c1030d7b5a025c29f26e19d95c156 168 1.41 KB / 1.41 KB [========================================================] 0s 169 Writing manifest to image destination 170 Storing signatures 171 03290064078cb797f3e0a530e78c20c13dd22a3dd3adf84a5da2127b48df0438 172 ``` 173 174 Pull an image by authenticating to a registry. 175 ``` 176 $ podman pull --creds testuser:testpassword docker.io/umohnani/finaltest 177 Trying to pull docker.io/umohnani/finaltest:latest...Getting image source signatures 178 Copying blob sha256:6d987f6f42797d81a318c40d442369ba3dc124883a0964d40b0c8f4f7561d913 179 1.90 MB / 1.90 MB [========================================================] 0s 180 Copying config sha256:ad4686094d8f0186ec8249fc4917b71faa2c1030d7b5a025c29f26e19d95c156 181 1.41 KB / 1.41 KB [========================================================] 0s 182 Writing manifest to image destination 183 Storing signatures 184 03290064078cb797f3e0a530e78c20c13dd22a3dd3adf84a5da2127b48df0438 185 ``` 186 187 Pull an image using tls verification. 188 ``` 189 $ podman pull --tls-verify=false --cert-dir image/certs docker.io/umohnani/finaltest 190 Trying to pull docker.io/umohnani/finaltest:latest...Getting image source signatures 191 Copying blob sha256:6d987f6f42797d81a318c40d442369ba3dc124883a0964d40b0c8f4f7561d913 192 1.90 MB / 1.90 MB [========================================================] 0s 193 Copying config sha256:ad4686094d8f0186ec8249fc4917b71faa2c1030d7b5a025c29f26e19d95c156 194 1.41 KB / 1.41 KB [========================================================] 0s 195 Writing manifest to image destination 196 Storing signatures 197 03290064078cb797f3e0a530e78c20c13dd22a3dd3adf84a5da2127b48df0438 198 ``` 199 200 Pull an image by overriding the host architecture. 201 ``` 202 $ podman pull --arch=arm arm32v7/debian:stretch 203 Trying to pull docker.io/arm32v7/debian:stretch... 204 Getting image source signatures 205 Copying blob b531ae4a3925 done 206 Copying config 3cba58dad5 done 207 Writing manifest to image destination 208 Storing signatures 209 3cba58dad5d9b35e755b48b634acb3fdd185ab1c996ac11510cc72c17780e13c 210 ``` 211 212 Pull an image with up to 6 retries, delaying 10 seconds between retries in quet mode. 213 ``` 214 $ podman --remote pull -q --retry 6 --retry-delay 10s ubi9 215 4d6addf62a90e392ff6d3f470259eb5667eab5b9a8e03d20b41d0ab910f92170 216 ``` 217 218 ## SEE ALSO 219 **[podman(1)](podman.1.md)**, **[podman-push(1)](podman-push.1.md)**, **[podman-login(1)](podman-login.1.md)**, **[containers-certs.d(5)](https://github.com/containers/image/blob/main/docs/containers-certs.d.5.md)**, **[containers-registries.conf(5)](https://github.com/containers/image/blob/main/docs/containers-registries.conf.5.md)**, **[containers-transports(5)](https://github.com/containers/image/blob/main/docs/containers-transports.5.md)** 220 221 ## HISTORY 222 July 2017, Originally compiled by Urvashi Mohnani <umohnani@redhat.com>