从docker中的docker登录到私有docker注册表时出现服务器错误

时间:2015-01-28 15:28:52

标签: docker boot2docker docker-registry

我正在使用boot2docker和docker 1.4.1,我正在运行一个Jenkins容器,它也运行Docker作为主机(也是版本1.4.1)。但是当我尝试使用以下命令登录我的Tutum私有Docker注册表时

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容器(sudo service docker stop)内停止Docker服务并使用以下命令启动它:

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

1 个答案:

答案 0 :(得分:1)

我设法通过更改DNS服务器来解决这个问题,正如Javier暗示的那样。 Docker使用/etc/resolv.conf中指定的192.168.1.1指定的DNS服务器。我更改了此8.8.8.8,之后我就可以登录了。

更新

今天我尝试覆盖/etc/resolv.conf中的Dockerfile文件,但事实证明Docker在启动容器时设置了DNS。这意味着我已从resolv.conf添加的文件Dockerfile文件被覆盖。解决方案是在启动容器时添加--dns 8.8.8.8。例如

docker run --dns 8.8.8.8 ubuntu:14.04 <some_command>