它应该连接到最新版本的gitlab- CentOS Linux版本7.5.1804,3.10.0-862.14.4.el7.x86_64。 Docker版本:17.05.0-ce,API版本:1.29
这完美无瑕:
docker run -d -p 1300:5000 --restart=always --name registry -v /opt/ssl:/opt/ssl -e REGISTRY_HTTP_TLS_CERTIFICATE=/opt/ssl/CERT.crt -e REGISTRY_HTTP_TLS_KEY=/opt/ssl/SRV_KEY.key registry:2
我能够通过以下方式推送,删除和查看网络上的图像
https://example.com:1300/v2/_catalog
这是事情开始变得复杂的地方, 我正在尝试在注册表上实现基本的Auth:
最初我跑了docker run --entrypoint htpasswd registry:2 -Bbn USER PASSWORD > /opt/auth/htpasswd
(附带说明,使用.htpasswd失败,但是使用htpasswd起作用了-为什么?为什么我不能使用隐藏文件?尽管它实际上是用root运行的,但docker找不到它?)
然后我跑了docker run -d -p 1300:5000 --restart=always --name registry -v /opt/ssl:/opt/ssl -e REGISTRY_HTTP_TLS_CERTIFICATE=/opt/ssl/CERT.crt -e REGISTRY_HTTP_TLS_KEY=/opt/ssl/SRV_KEY.key -v /opt/auth:/opt/auth -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e REGISTRY_AUTH_HTPASSWD_PATH=/opt/auth/htpasswd registry:2
(非授权版本的注册表已被删除,当然,有些地方建议在-e标志后的受尊敬的位置使用pwd
,但是那没用-容器在重启循环中启动,从不结束)
现在,我可以通过Web登录到注册表,(我假设这证明了auth进程有效,?),但是页面空白。开发工具显示了针对该域的http响应200,但是我获得了所有其他响应的http响应400。
当尝试使用cli通过cli登录到注册表时:
docker login --username username example.com:1300
||
docker login --username username https://example.com:1300
我被拒绝连接。
许多站点都指出,我使用的过程是可行的(即使在SO上也是如此),但是对于为什么不起作用,却没有真正的答案。
任何帮助都是最有帮助的。