跳到主要内容

Podman -push - 将本地存储中的镜像、清单列表或镜像索引推送到其他位置

概要

podman push [options] image [destination]

podman image push [options] image [destination]

描述

将本地存储中的镜像、清单列表或镜像索引推送到指定的目标位置。

镜像存储

镜像从本地镜像存储中推送。

目标位置

目标位置(DESTINATION)是容器镜像被推送到的地方。它支持 containers-transports(5) 中定义的所有传输方式。如果没有指定传输方式,则使用 docker(即容器注册表)传输方式。对于远程客户端,包括 Mac 和 Windows(不包括 WSL2)机器,docker 是唯一支持的传输方式。

示例:

# 推送到容器注册表
$ podman push quay.io/podman/stable

# 通过 docker 传输方式推送到容器注册表
$ podman push docker://quay.io/podman/stable

# 推送到容器注册表并使用另一个标签
$ podman push myimage quay.io/username/myimage

# 推送到本地目录
$ podman push myimage dir:/tmp/myimage

# 推送到 docker-archive 格式的 tar 包
$ podman push myimage docker-archive:/tmp/myimage

# 推送到本地的 docker 守护进程
$ sudo podman push myimage docker-daemon:docker.io/library/myimage:33

# 推送到 OCI 格式的 tar 包
$ podman push myimage oci-archive:/tmp/myimage

在使用 podman push 命令时,可以指定一些选项来调整推送行为。具体的选项可以通过 podman push --help 来查看。 请注意,推送镜像时,目标位置可能需要身份验证。在某些情况下,您可能需要提供用户名和密码或其他凭据才能成功推送镜像。 推送镜像是一个相对耗时的操作,特别是当镜像较大或目标位置较远时。请确保您的网络连接稳定,并耐心等待推送完成。

推送镜像到 Docker 仓库

podman push myimage docker://registry.example.com/myrepo/myimage

推送镜像到本地目录

podman push myimage dir:/path/to/local/directory

使用特定格式推送镜像

podman push --format oci myimage oci-archive:/path/to/output.tar

推送镜像并压缩层

podman push --dir-compress myimage dir:/path/to/output-dir

推送镜像并添加签名

podman push --sign-by mykey myimage docker://registry.example.com/myrepo/myimage

请注意,某些选项可能不适用于所有传输方式或目标位置。使用这些选项时,请确保您理解它们的行为并考虑您正在推送的镜像和目标位置。 在使用 podman push 命令时,请确保您有足够的权限来执行推送操作,并且目标位置是可达的。如果您遇到任何问题或错误消息,请检查您的网络连接、认证凭据以及目标位置的配置。 总结起来,podman push 命令是 Podman 工具中一个非常有用的功能,它允许您将本地存储的镜像推送到不同的目标位置,以满足不同的需求和管理策略。

选项

选项说明
--authfile
--cert-dir
--dir-compress注意:此标志只能在使用dir传输时设置
--compression-format
--compression-level
--creds
--digestfile
--disable-content-trust
--encrypt-layer=layer(s)要加密的层:0索引的层索引,支持负索引(例如,0是第一层,-1是最后一层)。如果未定义,则在指定encryption-key标志时加密所有层。
--encryption-key=key[protocol:keyfile]指定加密协议,可以是JWE(RFC7516)、PGP(RFC4880)和PKCS7(RFC2315)以及图像加密所需的密钥材料。例如,jwe:/path/to/key.pem或pgp:admin@example.com或pkcs7:/path/to/x509-file。
--force-compression
--format, -f=format推送图像时要使用的清单类型(oci、v2s2或v2s1)。
--quiet, -q写入输出图像时,禁止显示进度输出
--remove-signatures丢弃图像中的任何预先存在的签名。
--retry
--retry-delay
--sign-by=key使用指定的密钥在目标位置添加“简单签名”签名。(此选项不适用于远程Podman客户端,包括Mac和Windows(排除WSL2)机器)
--sign-by-sigstore=param-file根据容器sigstore签名参数文件param-file中指定的其他选项添加sigstore签名。有关文件格式的详细信息,请参阅containers-sigstore-signing-params.yaml(5)。
--sign-by-sigstore-private-key=path使用指定路径下的私钥在目标位置添加sigstore签名。(此选项不适用于远程Podman客户端,包括Mac和Windows(排除WSL2)机器)
--sign-passphrase-file
--tls-verify

示例

在本地目录中推送指定的镜像:

podman push imageID dir:/path/to/image

以OCI格式将指定的镜像推送到本地目录:

podman push imageID oci-archive:/path/to/layout:image:tag

将指定的镜像推送到容器仓库:

podman push imageID docker://registry.example.com/repository:tag

将指定的镜像推送到容器仓库,并将摘要保存到指定的文件中:

podman push --digestfile=/tmp/mydigest imageID docker://registry.example.com/repository:tag

将指定的镜像推送到本地Docker守护进程的容器存储中:

podman push imageID docker-daemon:image:tag

使用来自备用authfile路径的凭据,以不同的镜像名称推送指定的镜像:

podman push --authfile temp-auths/myauths.json alpine docker://docker.io/umohnani/alpine

Getting image source signatures
Copying blob sha256:5bef08742407efd622d243692b79ba0055383bbce12900324f75e56f589aedb0
4.03 MB / 4.03 MB [========================================================] 1s
Copying config sha256:ad4686094d8f0186ec8249fc4917b71faa2c1030d7b5a025c29f26e19d95c156
1.41 KB / 1.41 KB [========================================================] 1s
Writing manifest to image destination
Storing signatures

将指定的镜像推送到本地目录作为OCI镜像:

podman push --format oci registry.access.redhat.com/rhel7 dir:rhel7-dir

获取镜像源签名
复制 blob sha256:9cadd93b16ff2a0c51ac967ea2abfadfac50cfa3af8b5bf983d89b8f8647f3e4
71.41 MB / 71.41 MB [======================================================] 9s
复制 blob sha256:4aa565ad8b7a87248163ce7dba1dd3894821aac97e846b932ff6b8ef9a8a508a
1.21 KB / 1.21 KB [========================================================] 0s
复制配置 sha256:f1b09a81455c351eaa484b61aacd048ab613c08e4c5d1da80c4c46301b03cf3b
3.01 KB / 3.01 KB [========================================================] 0s
写入镜像到目标目录的清单
存储签名

另请参阅