2015-10-20 39 views
3

我试图在ECS上设置私人码头注册表(遵循指南http://www.elastic.io/en/running-a-docker-private-registry-on-ec2/),前面带有ELB,终止带有自签名证书的SSL。注册表本身正在运行并向ELB注册,并且在使用自签名证书的CA更新OS ca-cert软件包和docker主机文件夹之后,我可以成功运行curl -u myuser:mypass https://myawselb.domain/v2/,并且我可以成功执行docker login myawselb.domain,但要做docker push myawselb.domain/my-image总是失败,无论如何......我尝试了存储库id的所有组合,包括端口和https前缀,但所有请求均失败。这是在码头日志中记录:使用SSL和基本身份验证在AWS ECS上运行私人码头注册表v2

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" 

然后经过一些更多的推入尝试失败,404页面未找到。

注册表服务器日志:

time="2015-10-20T20:26:09Z" level=warning msg="error authorizing context: basic authentication challenge: htpasswd.challenge{realm:\"my auth realm\", err:(*errors.errorString)(0xc2080792d0)}" http.request.host=myawselb.domain http.request.id=510894a1-2db5-4782-98da-d9fefc6b13cc http.request.method=GET http.request.remoteaddr=myip http.request.uri="/v2/" http.request.useragent="docker/1.8.3 go/go1.4.2 git-commit/f4bf5c7 kernel/4.1.10-boot2docker os/linux arch/amd64" instance.id=my-instance-id version=v2.1.1 
10.0.0.x - - [20/Oct/2015:20:26:09 +0000] "GET /v2/ HTTP/1.1" 401 114 "" "docker/1.8.3 go/go1.4.2 git-commit/f4bf5c7 kernel/4.1.10-boot2docker os/linux arch/amd64" 
10.0.0.y - - [20/Oct/2015:20:26:19 +0000] "PUT /v1/repositories/my-image/ HTTP/1.1" 404 19 "" "docker/1.8.3 go/go1.4.2 git-commit/f4bf5c7 kernel/4.1.10-boot2docker os/linux arch/amd64" 

我可能忘记了一些东西很明显,但我开始江郎才尽。因此,任何援助非常感谢。

回答

1

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

另一件要检查的地方是本地docker版本是最新版本之一,之前我们遇到了一些与旧版docker守护进程有关的问题。

长Renat

+0

这不是(至少不是一个明显的)连接问题。我可以用'curl'连接。我刚刚升级到最新的Docker Toolbox(OS X),但仍然是同样的问题。但是,我在一台Windows电脑上安装了Docker Toolbox,它在那里工作。所以我猜想我需要重新创建boot2docker映像,看看它是用“普通”的Docker Toolbox修复的,还是在OSX上有Docker Toolbox/Boot2Docker的bug。 – NilsH

0

出于某种原因,在泊坞窗VM去除/etc/resolv.conf名称服务器8.8.8.8解决的问题。我不知道为什么这应该有所作为,但它确实如此。

+0

否决或否决,这是真正帮助。 – NilsH