【发布时间】:2020-03-20 12:20:24
【问题描述】:
我有一个自定义 Docker 注册表,可通过 http://localhost:5000 访问
这是 Apache 配置:
Listen 443
<VirtualHost *:443>
ServerName registry.mycompany.com
SSLEngine on
SSLCertificateFile ...
SSLCertificateKeyFile ...
SSLCACertificateFile /etc/pki/tls/certs/thawte.pem
ProxyPreserveHost On
ProxyPass / http://localhost:5000/
ProxyPassReverse / http://localhost:5000/
ProxyRequests Off
</VirtualHost>
这里是我如何启动注册表:
docker run -d \
-p 5000:5000 \
-e REGISTRY_STORAGE_DELETE_ENABLED=true \
-e REGISTRY_AUTH=htpasswd \
-e REGISTRY_AUTH_HTPASSWD_REALM="Registro" \
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
--restart=always \
--name registro \
registry:2
一切正常(docker pull,...),但 docker push 失败。在此处重试后显示错误消息:
first path segment in URL cannot contain colon
相关文档可以在这里找到:
【问题讨论】:
-
您是否尝试在您的 apache 配置中将 localhost 更改为 127.0.0.1?
-
你到底在使用什么推送命令?您是否尝试过不使用代理(进行测试)?
-
请使用这个文件,看看它是否适合你github.com/azurecr-test/distribution-uaenorth/blob/…
-
感谢@cagta,但将 localhost 更改为 127.0.0.1 并没有改变。
-
@PierreB.失败的命令是
docker push registry.mycompany.com/myimage:mytag