buildah-push - Push an image from local storage to elsewhere.
buildah push [options] image [destination]
Pushes an image from local storage to a specified destination, decompressing and recompessing layers as needed.
Image stored in local container/storage
The DESTINATION is a location to store container images. If omitted, the source image parameter will be reused as destination.
The Image "DESTINATION" uses a "transport":"details" format. 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.
docker://docker-reference
An image in a registry implementing the "Docker Registry HTTP API V2". By default, uses the authorization state in $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)
.
If docker-reference does not include a registry name, the image will be pushed to a registry running on localhost.
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.
docker-daemon:docker-reference An image docker_reference stored in the docker daemon internal storage. If docker_reference does not begin with a valid registry name (a domain name containing "." or the reserved name "localhost") then the default registry name "docker.io" will be prepended. docker_reference must contain either a tag or a digest. Alternatively, when reading images, the format can also be docker-daemon:algo:digest (an image ID).
oci:path:tag An image tag in a directory compliant with "Open Container Image Layout Specification" at path.
oci-archive:path:tag An image tag in a tar archive compliant with "Open Container Image Layout Specification" at path.
ostree:image[@/absolute/repo/path] An image in local OSTree repository. /absolute/repo/path defaults to /ostree/repo.
If the transport part of DESTINATION is omitted, "docker://" is assumed.
--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
.
--cert-dir path
Use certificates at path (*.crt, *.cert, *.key) to connect to the registry. Default certificates directory is /etc/containers/certs.d.
--creds creds
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-compression, -D
Don't compress copies of filesystem layers which will be pushed.
--format, -f
Manifest Type (oci, v2s1, or v2s2) to use when saving image to directory using the 'dir:' transport (default is manifest type of source)
--quiet, -q
When writing the output image, suppress progress output.
--signature-policy
Pathname of a signature policy file to use. It is not recommended that this option be used, as the default behavior of using the system-wide default policy (frequently /etc/containers/policy.json) is most often preferred.
--tls-verify bool-value
Require HTTPS and verify certificates when talking to container registries (defaults to true)
This example extracts the imageID image to a local directory in docker format.
# buildah push imageID dir:/path/to/image
This example extracts the imageID image to a local directory in oci format.
# buildah push imageID oci:/path/to/layout:image:tag
This example extracts the imageID image to a tar archive in oci format.
# buildah push imageID oci-archive:/path/to/archive:image:tag
This example extracts the imageID image to a container registry named registry.example.com.
# buildah push imageID docker://registry.example.com/repository:tag
This example works like docker push, assuming registry.example.com/my_image is a local image.
# buildah push registry.example.com/my_image
This example extracts the imageID image to a private container registry named registry.example.com with authentication from /tmp/auths/myauths.json.
# buildah push --authfile /tmp/auths/myauths.json imageID docker://registry.example.com/repository:tag
This example extracts the imageID image and puts into the local docker container store.
# buildah push imageID docker-daemon:image:tag
This example extracts the imageID image and puts it into the registry on the localhost while turning off tls verification.
# buildah push --tls-verify=false imageID docker://localhost:5000/my-imageID
This example extracts the imageID image and puts it into the registry on the localhost using credentials and certificates for authentication.
# buildah push --cert-dir ~/auth --tls-verify=true --creds=username:password imageID docker://localhost:5000/my-imageID
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.
buildah(1), podman-login(1), docker-login(1), policy.json(5), registries.conf(5)