有没有办法将整台机器/Docker 守护进程记录到注册表中?
我看到的关于 docker login 和各种专有凭证助手使用的所有内容~/.docker/config.json
,即每个用户。
我有一种情况,我想从私有注册表中提取图像;多人在这些机器上都拥有任意 sudo 访问权限,并且应该能够针对我们的注册表使用 Docker。
由于 Docker 访问无论如何都应该被读取为对机器的 root 访问(即,如果用户可以运行 Docker,则用户凭据不是相互安全的),并且 sudo 访问是相同但直接的,我想切入正题并记录整个机器在没有每个用户都必须跳过箍的情况下。
我可以提供一个文件,每个人都可以链接到他们config.json
的 .
想到三个选项:
不要将图像设为私有,而是允许任何人拉取可以访问注册表服务器的图像。这在环境中相当常见,因为映像应该只包含运行应用程序的库和二进制文件,而不是配置文件、机密或数据,它们将在运行时注入或存储在卷中。
如果每个人都有 sudo 访问权限,请从 sudo 运行 docker 命令,包括登录。凭据将存储在 root 用户的
~/.docker/config.json
制作您自己的凭证助手,将登录信息输出到主机。凭证助手接口非常简单,4 个操作(存储、获取、列出、擦除)可以在 shell 脚本上实现。对于登录,您可能只需要 get 操作。
该凭证帮助脚本可能看起来像一个名为
docker-credential-your-helper
(其中your-helper
可以是您选择的名称)的脚本:使该文件可执行并将其放在路径中。然后每个用户
~/.docker/config.json
都会有一个凭证助手条目(请注意,docker-credential-
不包含在此文件中,仅包含文件名之后的部分):