名称

podman-login - 登录到容器镜像仓库

简介

podman login [选项] [镜像仓库]

描述

podman login 使用正确的用户名和密码登录到指定的镜像仓库服务器。如果未指定镜像仓库,则使用 registries.conf 中 [registries.search] 下的第一个镜像仓库。podman login 从标准输入(STDIN)读取用户名和密码。也可以使用 usernamepassword 标志设置用户名和密码。用户可以通过设置 authfile 标志来指定身份验证文件的路径。读取和写入凭据的默认路径是 ${XDG_RUNTIME_DIR}/containers/auth.json。如果用户没有传入用户名,Podman 会使用现有的凭据。Podman 首先在 ${XDG_RUNTIME_DIR}/containers/auth.json 中搜索用户名和密码,如果它们无效,Podman 接着会使用在 $HOME/.docker/config.json 中找到的任何现有凭据。如果这些凭据也不存在,Podman 会创建 ${XDG_RUNTIME_DIR}/containers/auth.json(如果文件不存在),然后将从标准输入(STDIN)获取的用户名和密码以 base64 编码的字符串形式存储在其中。有关 auth.json 文件的格式和配置的更多详细信息,请参阅 containers-auth.json(5)。

podman [全局选项]

podman login [全局选项]

podman login [选项] [镜像仓库] [全局选项]

选项

--authfile=path

身份验证文件的路径。在 Linux 上默认为 ${XDG_RUNTIME_DIR}/containers/auth.json,在 Windows/macOS 上默认为 $HOME/.config/containers/auth.json。该文件由 podman login 创建。如果在该路径下未找到授权状态,则会检查 $HOME/.docker/config.json,该文件由 docker login 设置。

注意:还可以通过设置 REGISTRY_AUTH_FILE 环境变量来覆盖身份验证文件的默认路径。这可以通过 export REGISTRY_AUTH_FILE=路径 来完成。

--cert-dir=path

使用位于 path 路径下的证书(*.crt、*.cert、*.key)连接到镜像仓库。(默认值:/etc/containers/certs.d)有关详细信息,请参阅 containers-certs.d(5)。(此选项不适用于远程 Podman 客户端,包括 Mac 和 Windows(不含 WSL2)机器)

--compat-auth-file=路径

不更新默认的凭据文件,而是更新位于 path 的文件,并使用与 Docker 兼容的格式。

--get-login

返回该镜像仓库的已登录用户。如果未找到登录信息,则返回错误。

--help, -h

打印用法说明

--password, -p=密码

镜像仓库的密码

--password-stdin

从标准输入(stdin)获取密码

--secret=名称

从名为 name 的 podman secret 中读取镜像仓库的密码。如果未指定 --username,则使用 --username=name

--tls-verify

在联系镜像仓库时要求使用 HTTPS 并验证证书(默认值:true)。如果明确设置为 true,则使用 TLS 验证。如果设置为 false,则不使用 TLS 验证。如果未指定,则会使用 TLS 验证,除非目标镜像仓库在 containers-registries.conf(5) 中被列为不安全的镜像仓库。

--username, -u=用户名

镜像仓库的用户名

--verbose, -v

打印有关凭据存储的详细信息

示例

将指定镜像仓库的登录凭据添加到默认身份验证文件中;请注意,与 docker 的默认设置不同,默认凭据位于 $XDG_RUNTIME_DIR 下,这是 /run(一个临时目录)的子目录,因此在重启后不会保留。

$ podman login quay.io
Username: umohnani
Password:
Login Succeeded!

要明确地在重启后保留凭据,您需要指定默认的持久化路径。

$ podman login --authfile ~/.config/containers/auth.json quay.io
Username: umohnani
Password:
Login Succeeded!

使用指定的用户名和密码,将本地镜像仓库的登录凭据添加到默认身份验证文件中。

$ podman login -u testuser -p testpassword localhost:5000
Login Succeeded!

为指定的镜像仓库,将登录凭据添加到备用 authfile 路径。

$ podman login --authfile authdir/myauths.json quay.io
Username: umohnani
Password:
Login Succeeded!

使用 Podman secret 作为密码添加登录凭据。

$ echo -n MySecret! | podman secret create secretname -
a0ad54df3c97cf89d5ca6193c
$ podman login --secret secretname -u testuser quay.io
Login Succeeded!

为用户 test 添加密码为 test 的登录凭据到 localhost:5000 镜像仓库,并禁用 tls 验证要求。

$ podman login --tls-verify=false -u test -p test localhost:5000
Login Succeeded!

为用户 foo 添加密码为 bar 的登录凭据到 localhost:5000 镜像仓库,并使用证书目录 /etc/containers/certs.d。

$ podman login --cert-dir /etc/containers/certs.d/ -u foo -p bar localhost:5000
Login Succeeded!

为指定的用户,将指定镜像仓库的登录凭据添加到默认身份验证文件中,密码信息通过标准输入从磁盘上的文件中提供。

$ podman login -u testuser  --password-stdin < testpassword.txt docker.io
Login Succeeded!

为指定的用户,将指定镜像仓库的登录凭据添加到默认身份验证文件中,密码信息通过管道从标准输入提供。

$ echo $testpassword | podman login -u testuser --password-stdin quay.io
Login Succeeded!

以详细模式将指定镜像仓库的登录凭据添加到默认身份验证文件中。

$ podman login quay.io --verbose
Username: myusername
Password:
Used: /run/user/1000/containers/auth.json
Login Succeeded!

另请参阅

podman(1)podman-logout(1)containers-auth.json(5)containers-certs.d(5)containers-registries.conf(5)podman-secret(1)podman-secret-create(1)

历史

2017年8月,由 Urvashi Mohnani umohnani@redhat.com 首次编写