解决链接的docker容器中的内部DNS

我通过以下方式构build两个基本图像

docker build --tag dw_web web/ docker build --tag dw_db db/ 

并通过以下方式启动db容器:

 docker run -d --publish 3306:3306 --name dw_db_1 dw_db 

当我通过以下命令启动Web容器时,我无法ping通我的db容器:

 $ docker run -ti --rm --publish 8181:80 --link dw_db_1:dbsrv --name dw_web_1 dw_web /bin/bash root@ccd4ad5f0ae4:/# env HOSTNAME=ccd4ad5f0ae4 TERM=dumb DBSRV_NAME=/dw_web_1/dbsrv DBSRV_ENV_DEBIAN_FRONTEND=noninteractive LC_ALL=en_US.UTF-8 LS_COLORS= DBSRV_ENV_LC_ALL=en_US.UTF-8 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin PWD=/ DBSRV_PORT=tcp://172.17.0.3:3306 DBSRV_PORT_3306_TCP_PORT=3306 LANG=en_US.UTF-8 DBSRV_PORT_3306_TCP_ADDR=172.17.0.3 DBSRV_PORT_3306_TCP=tcp://172.17.0.3:3306 DBSRV_PORT_3306_TCP_PROTO=tcp DBSRV_ENV_LANG=en_US.UTF-8 SHLVL=1 HOME=/root DEBIAN_FRONTEND=noninteractive LESSOPEN=| /usr/bin/lesspipe %s LESSCLOSE=/usr/bin/lesspipe %s %s DBSRV_ENV_TERM=dumb _=/usr/bin/env root@ccd4ad5f0ae4:/# root@ccd4ad5f0ae4:/# cat /etc/hosts 172.17.0.4 ccd4ad5f0ae4 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 172.17.0.3 dbsrv d7814795da3c dw_db_1 root@ccd4ad5f0ae4:/# ping dbsrv ping: unknown host dbsrv root@ccd4ad5f0ae4:/# root@ccd4ad5f0ae4:/# ping -c 1 172.17.0.3 PING 172.17.0.3 (172.17.0.3) 56(84) bytes of data. 64 bytes from 172.17.0.3: icmp_seq=1 ttl=64 time=0.118 ms --- 172.17.0.3 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.118/0.118/0.118/0.000 ms root@ccd4ad5f0ae4:/# 

我search了networking上下,但没有find任何提示,我可以找的。 这两个图像都不是基于Ubuntu的:1404图像,只是通过apt-get来安装一些软件包。

我也尝试使用--dns选项,但没有运气。

任何想法,我可以看看?

谢谢,

find您正在使用的DNS服务器:

 nmcli dev list iface eth0 | grep IP4 

然后把地址放到/ etc / default / docker中

 docker_OPTS="--dns 8.8.8.8" 

并重新启动泊坞窗

 sudo restart docker