我试图在安全原因方面为docker注册表创建单独的推送和拉取。是否可以在任何容器注册表中创建它。
答案 0 :(得分:1)
Docker Registry 2.0引入了一种新的基于令牌的身份验证和授权协议。如果您使用token based authentication作为docker注册表,则支持ACL。您可以使用预建的ACL解决方案,例如https://github.com/cesanta/docker_auth。 它提供了细粒度的ACL规则,例如
acl:
- match: {account: "admin"}
actions: ["*"]
comment: "Admin has full access to everything."
- match: {account: "user"}
actions: ["pull"]
comment: "User \"user\" can pull stuff."
# Access is denied by default.
请参阅完整示例https://github.com/cesanta/docker_auth/blob/master/examples/simple.yml
对于您的方案,您可以创建仅具有推送和拉取权限的两个用户,然后以适当的用户身份登录操作(推或拉)。
如果您使用Docker Hub,那么组织已经有了一些ACL。
Docker Hub组织可让您创建团队,以便您可以提供 同事访问共享图像存储库。 Docker Hub 组织可以包含公共和私有存储库,就像一个 用户帐号。对这些存储库的访问推送或拉是 通过定义用户团队分配,然后分配团队权限 特定的存储库。存储库创建仅限于用户 组织所有者的小组。这允许您分发有限的 访问Docker镜像,并选择可以发布哪些Docker Hub用户 新图片。
https://docs.docker.com/docker-hub/orgs/#repository-team-permissions
权限是累积的。例如,如果您有写 权限,您自动拥有读取权限:
读取权限允许用户以与公共存储库相同的方式查看,搜索和提取私有存储库。
写入权限允许用户推送到Docker Hub上的非自动存储库。
管理员权限允许用户修改存储库“描述”,“协作者”权限,“公共/私人”可见性 和“删除”。
在您的方案中,您必须至少有两个注册的中心用户,然后其中一个可以是仅具有读取权限的团队成员,另一个用户可以是具有读取权限的团队成员写(并自动读取)访问。
注意:尚未验证其电子邮件地址的用户只有 无论团队的权限如何,都可以读取对存储库的访问权限 会员给了他们。