NAME¶
podman-image.unit - systemd unit files for managing container image pulls using Podman Quadlet
SYNOPSIS¶
name.image
DESCRIPTION¶
Image files are named with a .image extension and contain a section [Image] describing the
container image pull command. The generated service is a one-time command that ensures that the image
exists on the host, pulling it if needed.
Using image units allows containers and volumes to depend on images being automatically pulled. This is particularly interesting when using special options to control image pulls.
USAGE SUMMARY¶
The .image file is parsed by the podman-system-generator at boot or reload, generating a systemd
.service that runs podman image pull.
A .image file can be referenced in a .container file’s Image= option.
OPTIONS¶
Valid options for [Image] are listed below:
[Image] options |
podman image pull equivalent |
|---|---|
AllTags=true |
--all-tags |
Arch=aarch64 |
--arch=aarch64 |
AuthFile=/etc/registry/auth.json |
--authfile=/etc/registry/auth.json |
CertDir=/etc/registry/certs |
--cert-dir=/etc/registry/certs |
ContainersConfModule=/etc/nvd.conf |
--module=/etc/nvd.conf |
Creds=myname:mypassword |
--creds=myname:mypassword |
DecryptionKey=/etc/registry.key |
--decryption-key=/etc/registry.key |
GlobalArgs=--log-level=debug |
--log-level=debug |
Image=quay.io/centos/centos:latest |
podman image pull quay.io/centos/centos:latest |
ImageTag=quay.io/centos/centos:latest |
Use this name when resolving |
OS=windows |
--os=windows |
PodmanArgs=--os=linux |
--os=linux |
Policy=always |
--policy=always |
Retry=5 |
--retry=5 |
RetryDelay=10s |
--retry-delay=10s |
TLSVerify=false |
--tls-verify=false |
Variant=arm/v7 |
--variant=arm/v7 |
Arch=ARCH¶
Override the architecture, defaults to the host, of the image to be pulled. For example, arm.
Unless overridden, subsequent lookups of the same image in the local storage matches this architecture, regardless of the host.
AuthFile=path¶
Path of the authentication file. Default is ${XDG_RUNTIME_DIR}/containers/auth.json on Linux, and $HOME/.config/containers/auth.json on Windows/macOS.
The file is created by podman login. If the authorization state is not found there, $HOME/.docker/config.json is checked, which is set using docker login.
Note: There is also the option to override the default path of the authentication file by setting the REGISTRY_AUTH_FILE environment variable. This can be done with export REGISTRY_AUTH_FILE=path.
CertDir=path¶
Use certificates at path (*.crt, *.cert, *.key) to connect to the registry. (Default: /etc/containers/certs.d) For details, see containers-certs.d(5). (This option is not available with the remote Podman client, including Mac and Windows (excluding WSL2) machines)
ContainersConfModule=module¶
Load the specified containers.conf(5) module.
This option can be listed multiple times.
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 appears and the value can be entered. The password is entered without echo.
Note that the specified credentials are only used to authenticate against
target registries. They are not used for mirrors or when the registry gets
rewritten (see containers-registries.conf(5)); to authenticate against those
consider using a containers-auth.json(5) file.
DecryptionKey=key[:passphrase]¶
The [key[:passphrase]] to be used for decryption of images. Key can point to keys and/or certificates. Decryption is tried with all keys. If the key is protected by a passphrase, it is required to be passed in the argument and omitted otherwise.
GlobalArgs=¶
This key contains a list of arguments passed directly after the podman command in the generated
file. It can be used to access Podman features otherwise unsupported by the generator. Since the
generator is unaware of what unexpected interactions can be caused by these arguments, it is not
recommended to use this option.
The format of this is a space separated list of arguments, which can optionally be individually escaped to allow inclusion of whitespace and other control characters.
This key can be listed multiple times.
Image=¶
The image to pull. It is recommended to use a fully qualified image name rather than a short name, both for performance and robustness reasons.
The format of the name is the same as when passed to podman pull. It supports using
:tag or digests to guarantee the specific image version.
ImageTag=¶
The actual Fully Qualified Image Name (FQIN) of the referenced Image.
Only meaningful when the source is a file or directory archive.
For example, an image saved into a docker-archive with the following Podman command:
podman image save --format docker-archive --output /tmp/archive-file.tar quay.io/podman/stable:latest
requires setting
Image=docker-archive:/tmp/archive-file.tarImageTag=quay.io/podman/stable:latest
OS=os¶
Override the OS, defaults to the host, of the image to be pulled. For example, windows.
Unless overridden, subsequent lookups of the same image in the local storage matches this OS, regardless of the host.
PodmanArgs=¶
This key contains a list of arguments passed directly to the end of the podman command
in the generated file. It can be used to access Podman features otherwise unsupported
by the generator. Since the generator is unaware of what unexpected interactions can be
caused by these arguments, it is not recommended to use this option.
The format of this is a space separated list of arguments, which can optionally be individually escaped to allow inclusion of whitespace and other control characters.
This key can be listed multiple times.
Policy=always¶
Pull image policy. The default is always.
always: Always pull the image and throw an error if the pull fails.missing: Only pull the image if it could not be found in the local containers storage. Throw an error if no image could be found and the pull fails.never: Never pull the image; only use the local version. Throw an error if the image is not present locally.newer: Pull if the image on the registry is newer than the one in the local containers storage. An image is considered to be newer when the digests are different. Comparing the time stamps is prone to errors. Pull errors are suppressed if a local image was found.
Retry=attempts¶
Number of times to retry pulling or pushing images between the registry and local storage in case of failure. Default is 3.
RetryDelay=duration¶
Duration of delay between retry attempts when pulling or pushing images between the registry and local storage in case of failure. The default is to start at two seconds and then exponentially back off. The delay is used when this value is set, and no exponential back off occurs.
TLSVerify=¶
Require HTTPS and verify certificates when contacting registries (default: true). If explicitly set to true, TLS verification is used. If set to false, TLS verification is not used. If not specified, TLS verification is used unless the target registry is listed as an insecure registry in containers-registries.conf(5)
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¶
Basic image pull:
[Image]
Image=quay.io/centos/centos:latest
Pull from docker archive:
[Image]
Image=docker-archive:/tmp/centos.tar
ImageTag=quay.io/centos/centos:latest
Pull with credentials:
[Image]
Image=quay.io/private/image:latest
Creds=myuser:mypassword
SEE ALSO¶
podman-image-pull(1), podman-systemd.unit(5), systemd.unit(5)