podman-pull - Man Page

Pull an image from a registry

Synopsis

podman pull [options] source

podman image pull [options] source

podman pull [options] [transport]name[:tag|@digest]

podman image pull [options] [transport]name[:tag|@digest]

Description

Copies an image from a registry onto the local machine. podman pull pulls an image from Docker Hub if a registry is not specified in the command line argument. 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 will print the full image ID.  podman pull can also pull an image using its digest podman pull image@digest. podman pull can be used to pull images from archives and local storage using different transports.

Image storage

Images are stored in local image storage.

Source

The SOURCE is the location from which the container images are pulled.
The Image "SOURCE" uses a "transport":"details" format.  Only the docker (container registry)
transport is allowed for remote access.

Multiple transports are supported:

dir:path
 An existing local directory path storing the manifest, layer tarballs and signatures as individual files. This
 is a non-standardized format, primarily useful for debugging or noninvasive container inspection.

$ podman pull dir:/tmp/myimage

docker://docker-reference (Default)
 An image reference stored in a remote container image registry. The reference can include a path to a
 specific registry; if it does not, the registries listed in registries.conf will be queried to find a matching
 image. By default, credentials from podman login (stored at $XDG_RUNTIME_DIR/containers/auth.json by default)
 will  be used to authenticate; if these cannot be found, we will fall back to using credentials in
 $HOME/.docker/config.json.

$ podman pull quay.io/username/myimage

docker-archive:path[:docker-reference]
 An image is stored in the docker save formatted file.  docker-reference is only used when creating such a
 file, and it must not contain a digest.

$ podman pull docker-archive:/tmp/myimage

docker-daemon:docker-reference
 An image in docker-reference format stored in the docker daemon internal storage. The docker-reference can also be an image ID (docker-daemon:algo:digest).

$ sudo podman pull docker-daemon:docker.io/library/myimage:33

oci-archive:path:tag
 An image tag in a directory compliant with "Open Container Image Layout Specification" at path.

$ podman pull oci-archive:/tmp/myimage

Options

--all-tags, a

All tagged images in the repository will be pulled.

Note: When using the all-tags flag, Podman will not iterate over the search registries in the containers-registries.conf(5) but will always use docker.io for unqualified image names.

--arch=ARCH

Override the architecture, defaults to hosts, of the image to be pulled. For example, arm.

--authfile=path

Path of the authentication file. Default is ${XDG_RUNTIME_DIR}/containers/auth.json, which is set using podman login. If the authorization state is not found there, $HOME/.docker/config.json is checked, which is set using docker login.

Note: You can also override the default path of the authentication file by setting the REGISTRY_AUTH_FILE environment variable. export REGISTRY_AUTH_FILE=path

--cert-dir=path

Use certificates at path (*.crt, *.cert, *.key) to connect to the registry. Default certificates directory is /etc/containers/certs.d. (Not available for remote commands)

--creds=[username[:password]]

The [username[:password]] to use to authenticate with the registry if required. If one or both values are not supplied, a command line prompt will appear and the value can be entered.  The password is entered without echo.

--disable-content-trust

This is a Docker specific option to disable image verification to a Docker registry and is not supported by Podman.  This flag is a NOOP and provided solely for scripting compatibility.

--help, -h

Print usage statement

--os=OS

Override the OS, defaults to hosts, of the image to be pulled. For example, windows.

--platform=OS/ARCH

Specify the platform for selecting the image.  (Conflicts with --arch and --os) The --platform option can be used to override the current architecture and operating system.

--quiet, -q

Suppress output information when pulling images

--tls-verify=true|false

Require HTTPS and verify certificates when contacting registries (default: true). If explicitly set to true, then TLS verification will be used. If set to false, then TLS verification will not be used. If not specified, TLS verification will be used unless the target registry is listed as an insecure registry in registries.conf.

--variant=VARIANT

Use VARIANT instead of the default architecture variant of the container image.  Some images can use multiple variants of the arm architectures, such as arm/v5 and arm/v7.

Examples

$ podman pull alpine:latest
Trying to pull registry.access.redhat.com/alpine:latest... Failed
Trying to pull registry.fedoraproject.org/alpine:latest... Failed
Trying to pull docker.io/library/alpine:latest...Getting image source signatures
Copying blob sha256:88286f41530e93dffd4b964e1db22ce4939fffa4a4c665dab8591fbab03d4926
 1.90 MB / 1.90 MB [========================================================] 0s
Copying config sha256:76da55c8019d7a47c347c0dceb7a6591144d232a7dd616242a367b8bed18ecbc
 1.48 KB / 1.48 KB [========================================================] 0s
Writing manifest to image destination
Storing signatures
04660052281190168dbb2362eb15bf7067a8dc642d2498055e0e72efa961a4b6
$ podman pull alpine@sha256:d7342993700f8cd7aba8496c2d0e57be0666e80b4c441925fc6f9361fa81d10e
Trying to pull docker.io/library/alpine@sha256:d7342993700f8cd7aba8496c2d0e57be0666e80b4c441925fc6f9361fa81d10e...
Getting image source signatures
Copying blob 188c0c94c7c5 done
Copying config d6e46aa247 done
Writing manifest to image destination
Storing signatures
d6e46aa2470df1d32034c6707c8041158b652f38d2a9ae3d7ad7e7532d22ebe0
$ podman pull --authfile temp-auths/myauths.json docker://docker.io/umohnani/finaltest
Trying to pull docker.io/umohnani/finaltest:latest...Getting image source signatures
Copying blob sha256:6d987f6f42797d81a318c40d442369ba3dc124883a0964d40b0c8f4f7561d913
 1.90 MB / 1.90 MB [========================================================] 0s
Copying config sha256:ad4686094d8f0186ec8249fc4917b71faa2c1030d7b5a025c29f26e19d95c156
 1.41 KB / 1.41 KB [========================================================] 0s
Writing manifest to image destination
Storing signatures
03290064078cb797f3e0a530e78c20c13dd22a3dd3adf84a5da2127b48df0438
$ podman pull --creds testuser:testpassword docker.io/umohnani/finaltest
Trying to pull docker.io/umohnani/finaltest:latest...Getting image source signatures
Copying blob sha256:6d987f6f42797d81a318c40d442369ba3dc124883a0964d40b0c8f4f7561d913
 1.90 MB / 1.90 MB [========================================================] 0s
Copying config sha256:ad4686094d8f0186ec8249fc4917b71faa2c1030d7b5a025c29f26e19d95c156
 1.41 KB / 1.41 KB [========================================================] 0s
Writing manifest to image destination
Storing signatures
03290064078cb797f3e0a530e78c20c13dd22a3dd3adf84a5da2127b48df0438
$ podman pull --tls-verify=false --cert-dir image/certs docker.io/umohnani/finaltest
Trying to pull docker.io/umohnani/finaltest:latest...Getting image source signatures
Copying blob sha256:6d987f6f42797d81a318c40d442369ba3dc124883a0964d40b0c8f4f7561d913
 1.90 MB / 1.90 MB [========================================================] 0s
Copying config sha256:ad4686094d8f0186ec8249fc4917b71faa2c1030d7b5a025c29f26e19d95c156
 1.41 KB / 1.41 KB [========================================================] 0s
Writing manifest to image destination
Storing signatures
03290064078cb797f3e0a530e78c20c13dd22a3dd3adf84a5da2127b48df0438
$ podman pull --arch=arm arm32v7/debian:stretch
Trying to pull docker.io/arm32v7/debian:stretch...
Getting image source signatures
Copying blob b531ae4a3925 done
Copying config 3cba58dad5 done
Writing manifest to image destination
Storing signatures
3cba58dad5d9b35e755b48b634acb3fdd185ab1c996ac11510cc72c17780e13c

Files

registries.conf (/etc/containers/registries.conf)

registries.conf is the configuration file which specifies which container registries should be consulted when completing image names which do not include a registry or domain portion.

NOTE: Use the environment variable TMPDIR to change the temporary storage location of downloaded container images. Podman defaults to use /var/tmp.

See Also

podman(1), podman-push(1), podman-login(1), containers-registries.conf(5)

History

July 2017, Originally compiled by Urvashi Mohnani umohnani@redhat.com ⟨mailto:umohnani@redhat.com⟩

Referenced By

nbdkit-cdi-plugin(1), podman(1), podman-image(1), podman-push(1), podman-remote(1).

The man page podman-image-pull(1) is an alias of podman-pull(1).