如何使用Dockerconfiguration自定义DNS服务器?

我需要添加几行到/etc/hosts以供我的web-app在Docker容器中工作。

Docker的/etc/hosts是只读的。

我正在尝试使用dnsmasq:

从Ubuntu的:14.04
 #...
运行apt-get install -y -q dnsmasq
运行echo'listen-address = 127.0.0.1 >> >> /etc/dnsmasq.conf
 RUN echo'resolv-file = / etc / resolv.dnsmasq.conf'>> /etc/dnsmasq.conf
运行echo'conf-dir = / etc / dnsmasq.d'>> /etc/dnsmasq.conf
运行echo'user = root'>> /etc/dnsmasq.conf
运行echo'nameserver 8.8.8.8'>> /etc/resolv.dnsmasq.conf
运行echo'nameserver 8.8.4.4'>> /etc/resolv.dnsmasq.conf
 RUN echo'address =“/ mydomain / 127.0.6.1”>> >> /etc/dnsmasq.d/0hosts
运行服务dnsmasq启动

但是,我无法让Docker使用我的DNS服务器:

 $ docker --dns = 127.0.0.1运行我的/容器猫/etc/resolv.conf
名称服务器8.8.8.8
域名服务器8.8.4.4

我错过了什么?

组态:

  • OS X 10.9.4
  • Docker版本1.1.0,版本79812e3
  • boot2docker客户端版本:v1.1.0,Git commit:7e20d36

--dns适用于docker run但不适用于docker build 。 所以更好的解决办法是用全局调整设置

 DOCKER_OPTS="--dns=my-private-dns-server-ip --dns=8.8.8.8" 

在Ubuntu上,我把这一行放到/etc/default/docker

我所缺less的是我搞乱了选项和论点的顺序。 如果我run后指定--dns ,一切工作正常。

 $ docker run --dns = 127.0.0.1 my / container cat /etc/resolv.conf
域名服务器127.0.0.1

卫生署。