解决docker中DNS查询的问题

I got a dns error that i can not access dns server, 

that caused by : /etc/resolv.conf

you can find this in host-machine

nameserver 127.0.1.1
search gd1.qingcloud.com

 

Yes, you can find the process named "dnsmasq" listening 53 port, so you got nameserver 127.0.1.1 firstly.

 

however, it's not same with the docker machine,

search gd1.qingcloud.com

nameserver 8.8.8.8
nameserver 8.8.4.4

 

you can find this from  /etc/resolv.conf

the based image is download from docker offical via docker pull ubuntu.

so you get 8 repeats 4 times dns server.

 

 

 

 

however, WTF this at start ? => search gd1.qingcloud.com

in docker, you don't have dnsmasq, you can not find gd1.qingcloud.com, have not configure nameserver 127.0.0.1

you have do this to fix it:

nameserver 202.96.209.133  # valid nameserver ip address, remove "search gd1.qingcloud.com"
nameserver 8.8.8.8
nameserver 8.8.4.4

 

-----------------------

一种更好的方式是直接安装 dnsmasq

apt-get install dnsmasq

 

service dnsmasq start

其中报错:

* Starting DNS forwarder and DHCP server dnsmasq 
dnsmasq: setting capabilities failed: Operation not permitted

 

解决方法:

https://www.damagehead.com/blog/2015/04/28/deploying-a-dns-server-using-docker/

 

添加配置:

conf-dir=/etc/dnsmasq.d/,*.conf

interface=lo
interface=eth0
interface=docker0
resolv-file=/etc/resolv.dnsmasq.conf
user=root

  service dnsmasq start

posted @ 2016-08-16 16:29  betachen  阅读(2509)  评论(0编辑  收藏  举报