Docker DNS设置

我尝试创build自定义networking和dos设置docker容器。

docker network create –driver = bridge –opt“com.docker.network.bridge.enable_ip_masquerade”=“true”–opt“com.docker.network.bridge.enable_icc”=“true”–opt =“com .docker.network.driver.mtu“=”1500“–opt =”com.docker.network.bridge.host_binding_ipv4“=”0.0.0.0“net

docker run –dns 10.0.0.2 –network = net busybox cat /etc/resolv.conf

名称服务器127.0.0.11选项ndots:0

否则,如果我使用标准networking一切正常

docker run –dns 10.0.0.2 –network = bridge busybox cat /etc/resolv.conf

nameserver 10.0.0.2

从Docker 1.10开始,对于用户定义的networking,DNS进行不同的pipe理。 为了向后兼容,默认网桥networking的DNS不变。 在用户定义的networking中,docker守护程序使用embedded式DNS服务器。 根据这里find的文件:

https://docs.docker.com/engine/userguide/networking/configure-dns/

--dns=[IP_ADDRESS...] The IP addresses passed via the --dns option is used by the embedded DNS server to forward the DNS query if embedded DNS server is unable to resolve a name resolution request from the containers. These --dns IP addresses are managed by the embedded DNS server and will not be updated in the container's /etc/resolv.conf file. 

因此,将使用DNS名称服务器,它只是在容器的/etc/resolv.conf中不可见。