我正在使用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
答案 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>