名称

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=路径

身份验证文件路径。默认情况下,在 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=路径

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

--compat-auth-file=路径

不更新默认凭据文件,而是更新路径下的凭据文件,并使用与 Docker 兼容的格式。

--get-login

返回注册表的已登录用户。如果未找到登录,则返回错误。

--help, -h

打印使用说明语句

--password, -p=密码

注册表密码

--password-stdin

从 stdin 获取密码

--secret=名称

从 podman 密钥 名称 中读取注册表的密码。如果未指定 --username,则使用 --username=名称

--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 密钥添加登录凭据以获取密码。

$ 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!

为指定用户将指定注册表的登录凭据添加到默认身份验证文件,并通过来自磁盘文件的 stdin 提供密码信息。

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

将指定注册表的登录凭据添加到默认身份验证文件,并通过来自管道的 stdin 提供密码信息。

$ 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 编译