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