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支持是现实的,有一些仔细的思想和公关。