使用SSL和基本身份validation在AWS ECS上运行私有Dockerregistryv2
我试图在ECS上build立一个私人dockerregistry(按照http://www.elastic.io/en/running-a-docker-private-registry-on-ec2/的指导),在前面有一个ELB ,使用自签名证书终止SSL。 registry本身正在运行并向ELB注册,在更新OS ca-cert软件包和docker主机文件夹以及自签名证书的CA之后,我可以成功运行curl -u myuser:mypass https://myawselb.domain/v2/
,我可以成功地做docker login myawselb.domain
,但做docker push myawselb.domain/my-image
总是失败,不pipe是什么…我已经尝试了所有组合的仓库IDID有和没有端口和HTTPS前缀,但所有请求都失败。 这是在docker日志中logging的:
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页面未find。
registry服务器日志:
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"
我可能已经忘记了一些显而易见的事情,但是我已经开始意识不清了。 所以任何援助非常感谢。
显然你的docker守护进程无法通过HTTP协议到myawselb.domain
你确定它可以从myawselb.domain
守护进程运行的主机上parsing吗?
另一件要检查的地方是本地docker版本是最新版本之一,之前我们遇到了一些与docker守护进程有关的问题。
长Renat
出于某种原因,从docker vm中的/etc/resolv.conf
中删除名称服务器8.8.8.8
解决了这个问题。 我不知道为什么这应该有所作为,但它确实。