在AWS ECS上使用SSL和基本身份验证运行私有docker注册表v2

时间:2015-10-20 20:40:23

标签: docker docker-registry

我正在尝试在ECS上设置一个私有docker注册表(遵循指南http://www.elastic.io/en/running-a-docker-private-registry-on-ec2/),前面有一个ELB,使用自签名证书终止SSL。注册表本身正在运行并向ELB注册,在更新OS ca-cert包和docker主机文件夹与CA签署自签名证书后,我可以成功运行curl -u myuser:mypass https://myawselb.domain/v2/,我可以成功执行{ {1}},但是docker login myawselb.domain总是失败,无论如何......我已经尝试了有和没有端口和https前缀的存储库ID的所有组合,但是所有请求都失败了。这会记录在docker日志中:

docker push myawselb.domain/my-image

然后经过一些推送尝试后失败,找不到404页面。

注册服务器记录:

time="2015-10-20T20:05:12.197307689Z" level=debug msg="Calling POST /images/{name:.*}/push" 
time="2015-10-20T20:05:12.197370508Z" level=info msg="POST /v1.20/images/myawselb.domain/myimage/push?tag="
time="2015-10-20T20:05:32.439207664Z" level=debug msg="hostDir: /etc/docker/certs.d/myawselb.domain" 
time="2015-10-20T20:05:42.630367623Z" level=debug msg="hostDir: /etc/docker/certs.d/myawselb.domain" 
time="2015-10-20T20:05:42.630665342Z" level=debug msg="Trying to push myawselb.domain/my-image to https://myawselb.domain v2" 
time="2015-10-20T20:05:47.635771226Z" level=debug msg="Error getting v2 registry: Get https://myawselb.domain/v2/: net/http: request canceled while waiting for connection" 
time="2015-10-20T20:05:47.635965903Z" level=debug msg="Trying to push myawselb.domain/my-image to https://myawselb.domain v1" 

我可能已经忘记了一些显而易见的事情,但我开始没有想法了。所以非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

显然你的docker守护进程无法通过HTTP连接到myawselb.domain你确定它可以从运行docker守护进程的主机上解析吗?

要检查的另一件事是本地docker版本是最新版本之一,我们之前遇到过一些旧版本的docker守护程序问题。

长Renat

答案 1 :(得分:0)

出于某种原因,从docker vm中的8.8.8.8中删除名称服务器/etc/resolv.conf解决了这个问题。我不知道为什么会有任何不同,但确实如此。