从Docker中的泊坞窗login到专用dockerregistry时发生服务器错误
我使用的是boot2docker和docker 1.4.1,我正在运行一个Jenkins容器,它也运行Docker作为主机(也是版本1.4.1)。 但是,当我尝试login到我的Tutum私人Dockerregistry使用:
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容器之外login。 这是什么原因,我怎么解决它?
更新:
如果我停止Jenkins容器内的Docker服务( sudo service docker stop
)并使用以下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使用指向192.168.1.1
/etc/resolv.conf
中指定的DNS服务器。 我改变了这个8.8.8.8
,之后我能够login。
更新:
今天我试图从Dockerfile
覆盖/etc/resolv.conf
文件,但事实certificate,当容器启动时,Docker设置DNS。 这意味着我已经从Dockerfile
添加的文件resolv.conf
文件被覆盖。 解决方法是在容器启动时添加--dns 8.8.8.8
。 例如
docker run --dns 8.8.8.8 ubuntu:14.04 <some_command>