Dockerregistry和基本身份validation
我有一个简单的Dockerregistry,运行在远程虚拟机上,使用基本身份validation设置进行身份validation。 在开始运行registry之前,我发布了以下命令(我只是从这些文档中无耻地复制粘贴):
docker run --entrypoint htpasswd registry:2 -Bbn myuser 12345passwd > auth/htpasswd
这产生了一个auth/htpasswd
文件,其中包含myuser
条目和某种上面提供的密码的encryption/编码签名。 所以这显然是registry将用于authentication用户的文件。
一些担忧:
- 如何将新用户添加到此文件? 我必须重新启动registry容器才能使更改生效(我希望不会!)?
- 我如何从这个文件撤销用户,只是简单的文本编辑? 再次,需要发生的变化才能生效?
- 有没有办法强制授权/angular色(读/写访问)在这里? 我希望registry不仅允许一个通用的“你无限制的访问”angular色! 理想情况下,我想对哪些用户具有对哪些容器/回购的读/写访问权限进行细粒度的访问控制。
您可以参考Apache htpasswd
命令 (例如htpasswd -D <username>
将删除一个帐户)
你做的docker运行是执行该命令(用--entrypoint
覆盖registry映像的默认命令),并添加,更新或删除用户。
注意docker分发 (生产dockerregistry2.0 )有关于基于angular色的访问的讨论(如问题635 ):
请注意,registry2.1将与本地基本身份validation,这可能就足够了。 但是,不提供基于angular色的访问控制。 添加ACL支持是现实的,有一些仔细的思想和公关。