在Docker EE中,是否有一种方法可以允许从特定机器向DTR进行推拉,同时保持Web UI访问与正常情况相同?
我们只想在启用了docker内容信任的标准docker构建机器上强制执行docker映像构建
仅在CI服务器上允许以下命令:docker pull,docker build和docker push
有效地强制用户仅使用DTR中的基本图像。如果他们在其他位置构建映像,则无法将其推送,并且如果将其构建在我们的CI服务器上,则将确保他们只能从DTR而不是从其他位置提取基本映像,这也将确保他们在启用docker内容信任的情况下进行构建。
答案 0 :(得分:1)
我遇到过类似的用例,下面我与大家分享我如何限制DTR上的拉,推动作范围:
配置:谁有权在 注册表对象,并通过UCP Web UI加载Docker映像; 这导致向用户和/或团队提供特定的资助。
配置:用户(人工和/或自动化机器人)可以从其中进行配置 通过在网络上添加特定的防火墙规则来执行注册表操作 级别由网络管理员负责。
仅限制来自特定注册表的拉动操作, 在Docker主机文件系统上的以下路径更新文件, /var/lib/docker/daemon.json 添加DTR的网址:
{
... # some your custom Docker daemon configuration
"registry-mirrors": ["https://your-registry-url"]
... # some other custom Docker daemon configuration
}
最后,我得到:仅允许特定用户将Docker映像推送到DTR存储库中,并且只能从网络ACL列入白名单的位置推送。
一些参考文献:
如何配置Docker守护程序:https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file;
一个RBAC示例:https://success.docker.com/article/rbac-example-overview;
Docker EE RBAC支持的DTR默认权限:https://docs.docker.com/ee/dtr/admin/manage-users/permission-levels/。