docker私人registry:ping尝试失败

我试图设置我的私人Dockerregistry,我正在遵循官方文档 。 我已经安装了Docker,并且能够在我的服务器上运行我的registry。 但是我希望我的registry能够被广泛使用。 我的docker服务器与私人registry安装在AWS实例。 我使用keytool创build了自己的证书和密钥:

docker run -d -p 5000:5000 --restart=always --name registry \ -v `pwd`/certs:/certs \ -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \ -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \ registry:2 

我能够ping通这个实例:

 ping ec2-xx-xx-xx-xx.xx-west/east-1.compute.amazonaws.com 

但推动是不可能的:

 The push refers to a repository [ec2-xx-xx-xx-xx.compute.amazonaws.com:5000/ubuntu] (len: 1) unable to ping registry endpoint https://ec2-xx-xx-xx-xx.compute.amazonaws.com:5000/v0/ v2 ping attempt failed with error: Get https://ec2-xx-xx-xx-xx.compute.amazonaws.com:5000/v2/: dial tcp 10.xxx:5000: i/o timeout v1 ping attempt failed with error: Get https://ec2-xx-xx-xx-xx.amazonaws.com:5000/v1/_ping: dial tcp 10.0.xx:5000: i/o timeout 

编辑1:更改我的aws安全组后。 将端口5000设置为TCP ,错误更改:

 unable to ping registry endpoint https://ec2-xx-xx-xx-xx.compute.amazonaws.com:5000/v0/ v2 ping attempt failed with error: Get https://ec2-xx-xx-xx-xx.compute.amazonaws.com:5000/v2/: dial tcp 10.0.xx:5000: connection refused v1 ping attempt failed with error: Get https://ec2-xx-xx-xx-xx.compute.amazonaws.com:5000/v1/_ping: dial tcp 10.0.xx:5000: connection refused 

我怎样才能使我的registry访问其他aws实例? 我的docker日志显示以下。 他们找不到我的证书。

 level=fatal msg="open /certs/domain.crt: no such file or directory" 

我必须把这个证书放在我的容器里吗? (并使用keytool自己或使用现有的生成它)

编辑2:我已经使用此文档生成了我自己的证书。 生成证书后,我重新启动我的docker守护进程。 我没有执行domain.crt到ca.crt的副本,因为path不存在。 也许我必须自己创造它?

新错误:

 unable to ping registry endpoint https://ec2-xx-xx-xx-xx.compute.amazonaws.com:5000/v0/ v2 ping attempt failed with error: Get https://ec2-xx-xx-xx-xx.compute.amazonaws.com:5000/v2/: dial tcp 10.0.xx:5000: no route to host v1 ping attempt failed with error: Get https://ec2-xx-xx-xx-xx.compute.amazonaws.com:5000/v1/_ping: dial tcp 10.0.xx:5000: no route to host 

但我仍然在我的docker日志中得到以下内容:

 level=fatal msg="open /certs/domain.crt: no such file or directory" 

尝试执行推送后,会在我现有的证书文件夹中创build一个新的/ certs文件夹

编辑3:find我的证书的正确目录(/ home / centos / certs / certs / *。)。 我得到以下错误:

 level=fatal msg="open /certs/domain.crt: permission denied 

即使我执行chmod -R 777chown -R root:root

您将需要将证书放在这个目录中。

  /etc/docker/certs.d/<your-domain-name>:5000/ca.crt