Podman 注册表认证文件 containers-auth.json

用于控制容器镜像注册表身份验证的JSON格式配置文件。主文件(读写权限)在Linux系统中存储于 ${XDG_RUNTIME_DIR}/containers/auth.json;在Windows和macOS系统中存储于 $HOME/.config/containers/auth.json。

用于控制容器镜像注册表身份验证的JSON格式配置文件。主文件(读写权限)在Linux系统中存储于 ${XDG_RUNTIME_DIR}/containers/auth.json;在Windows和macOS系统中存储于 $HOME/.config/containers/auth.json。

在为注册表搜索凭据时,将按以下顺序读取文件直至找到有效凭据:首先读取主文件(读写权限),或通过调用应用程序的选项显式覆盖。若上述位置未找到凭证,则继续搜索 ${XDG_CONFIG_HOME}/containers/auth.json(通常为 ~/.config/containers/auth.json)、$HOME/.docker/config.json 及 $HOME/.dockercfg。

除主文件(读写)外,其他文件默认只读,除非用户通过调用应用程序的选项明确指定覆盖该文件。

格式

auth.json 文件存储或引用允许用户向容器镜像仓库进行身份验证的凭据。它主要由容器工具(如 podman login、buildah login 或 skopeo login)中的 login 命令进行管理。

每个条目包含单个主机名(例如,docker.io)或命名空间(例如,quay.io/user/image)作为键,以及以 base64 编码字符串形式存在的凭据作为auth的值。该base64编码字符串包含用户名、冒号和密码的拼接内容。

在检查可用凭据时,相关仓库会按照从最具体到最不具体的层级顺序与可用密钥进行匹配。例如,拉取镜像 my-egistry.local/namespace/user/image:latest 时,会按以下顺序在 auth.json 中进行查找:

  • my-registry.local/namespace/user/image

  • my-registry.local/namespace/user

  • my-registry.local/namespace

  • my-registry.local

这样就可以为单个仓库设置多个凭据,这些凭据可以通过它们的路径来区分。

以下示例展示了用户登录其在 quay.io 和 docker.io 上的账户后,在 auth.json 中找到的值:

{
	"auths": {
		"docker.io": {
			"auth": "erfi7sYi89234xJUqaqxgmzcnQ2rRFWM5aJX0EC="
		},
		"quay.io": {
			"auth": "juQAqGmz5eR1ipzx8Evn6KGdw8fEa1w5MWczmgY="
		}
	}
}

此示例展示了如何为单个注册表使用多个路径,同时为 my-registry.local 保留一个备用:

{
	"auths": {
		"my-registry.local/foo/bar/image": {
			"auth": "…"
		},
		"my-registry.local/foo": {
			"auth": "…"
		},
		"my-registry.local": {
			"auth": "…"
		},
	}
}

可以通过容器工具中的 logout 命令删除条目,例如 podman logout 或 buildah logout。

此外,可为特定注册表配置凭据助手,并且与仅在 auth.json 中存储 base64 编码的凭据相比,凭据助手软件能更安全地管理凭据。

在 Linux 平台启用凭证助手时,auth.json 文件将包含指定注册表域名的键值,以及指定程序后缀的键值(即docker-credential-后所有内容)。例如:

{
    "auths": {
        "localhost:5001": {}
    },
    "credHelpers": {
		"registry.example.com": "secretservice"
	}
}

有关凭据助手的更多信息,请参考 GitHub 上的 docker-credential-helpers 项目

另请参阅

buildah-login(1), buildah-logout(1), podman-login(1), podman-logout(1), skopeo-login(1), skopeo-logout(1)

历史记录

2020年2月,最初由汤姆·斯威尼汇编 tsweeney@redhat.comm

  

如果在胜利前却步,往往只会拥抱失败;如果在困难时坚持,常常会获得新的成功。
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
其他应用
公众号