我正在尝试使用自托管 docker 注册表 v2。我应该能够推送 docker 映像,该映像在运行registry v2 容器的主机服务器(coreos)上本地工作。但是,在另一台机器(也是 coreos,相同版本)上,当我尝试推送到注册表时,它尝试推送到 v1,并给出以下错误:
Error response from daemon: v1 ping attempt failed with error: Get
https://172.22.22.11:5000/v1/_ping: dial tcp 172.22.22.11:5000: i/o timeout.
If this private registry supports only HTTP or HTTPS with an unknown CA
certificate, please add `--insecure-registry 172.22.22.11:5000` to the
daemon's arguments. In the case of HTTPS, if you have access to the registry's
CA certificate, no need for the flag; simply place the CA certificate at
/etc/docker/certs.d/172.22.22.11:5000/ca.crt
两台机器的 docker 可执行文件都是 v1.6.2。为什么一个可以工作并推送到 v2,而另一个却是 v1?
这是注册表的存储库:https://github.com/docker/distribution https://github.com/docker/distribution
您需要先保护注册表,然后才能远程访问它,或者明确允许所有 Docker 守护进程访问不安全的注册表。
为了保护注册表,最简单的选择是为您的服务器购买 SSL 证书,但您也可以对证书进行自签名并分发给客户端。
要允许不安全访问,请添加参数--insecure-registry myregistrydomain.com:5000
给所有需要访问注册表的守护进程。 (显然将域名和端口替换为您的)。
完整说明(包括错误消息示例)可从以下位置获取:https://github.com/docker/distribution/blob/master/docs/deploying.md https://github.com/docker/distribution/blob/master/docs/deploying.md
关于错误信息,我guessDocker 首先尝试使用 v2,由于安全问题失败,然后尝试 v1,再次失败。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)