从docker中的docker登录到私有docker注册表时出现服务器错误
我正在使用boot2docker和docker 1.4.1,我正在运行一个Jenkins容器,该容器也将docker作为主机运行(也是版本1.4.1)。但是,当我尝试使用以下方式登录到我的私人Docker注册表时:从docker中的docker登录到私有docker注册表时出现服务器错误,docker,boot2docker,docker-registry,Docker,Boot2docker,Docker Registry,我正在使用boot2docker和docker 1.4.1,我正在运行一个Jenkins容器,该容器也将docker作为主机运行(也是版本1.4.1)。但是,当我尝试使用以下方式登录到我的私人Docker注册表时: sudo docker login -u=username -p=**** -e=my@email.com tutum.co 我最终出现以下错误: Server Error: Post https://tutum.co/v1/users/: dial tcp: lookup tut
sudo docker login -u=username -p=**** -e=my@email.com tutum.co
我最终出现以下错误:
Server Error: Post https://tutum.co/v1/users/: dial tcp: lookup tutum.co on [192.168.1.1]:53
如果我从Jenkins容器外部登录,一切正常。原因是什么?我该如何解决
更新:
如果我停止Jenkins容器内的Docker服务(sudo service Docker stop
),并使用以下命令启动它:
sudo docker -d &
我得到了一些更详细的信息:
INFO[0003] POST /v1.16/auth
INFO[0003] +job auth()
Get https://tutum.co/v1/_ping: dial tcp: lookup tutum.co on [192.168.1.1]:53: no such host
INFO[0005] -job auth() = ERR (1)
ERRO[0005] Handler for POST /auth returned error: Get https://tutum.co/v1/_ping: dial tcp: lookup tutum.co on [192.168.1.1]:53: no such host
ERRO[0005] HTTP Error: statusCode=404 Get https://tutum.co/v1/_ping: dial tcp: lookup tutum.co on [192.168.1.1]:53: no such host
FATA[0001] Error response from daemon: Get https://tutum.co/v1/_ping: dial tcp: lookup tutum.co on [192.168.1.1]:53: no such host
正如哈维尔暗示的那样,我通过改变DNS服务器解决了这个问题。Docker使用
/etc/resolv.conf
中指定的DNS服务器,该服务器指向192.168.1.1
。我更改了这个8.8.8.8
,之后我就可以登录了
更新:
今天我试图覆盖Dockerfile
中的/etc/resolv.conf
文件,但结果是Docker在容器启动时设置了DNS。这意味着我从Dockerfile
添加的文件resolv.conf
被覆盖。解决方案是在容器启动时添加--dns 8.8.8.8
。比如说
docker run --dns 8.8.8.8 ubuntu:14.04 <some_command>
docker运行——dns 8.8.8.8 ubuntu:14.04
从docker容器(Jenkins)内部可以访问tutum.co(ping/telnet/dnslookup…)。似乎有一些DNS问题。我不能从容器内部或外部“ping tutum.co”。我可以“ping www.tutum.co”,虽然从容器内部和外部都可以。