如何使用Docker配置自定义DNS服务器?


8

我需要添加几行内容,以/etc/hosts使我的Web应用程序可以在Docker容器中工作。

Docker /etc/hosts是只读的。

我正在尝试使用dnsmasq:

来自ubuntu:14.04
#...
运行apt-get install -y -q dnsmasq
RUN 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
RUN echo'user = root'>> /etc/dnsmasq.conf
RUN echo'nameserver 8.8.8.8'>> /etc/resolv.dnsmasq.conf
RUN echo'nameserver 8.8.4.4'>> /etc/resolv.dnsmasq.conf
运行echo'address =“ / mydomain / 127.0.6.1”'>> /etc/dnsmasq.d/0hosts
RUN服务dnsmasq启动

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

$ docker --dns = 127.0.0.1运行我的/容器cat /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提交:7e20d36

Answers:



6

我缺少的是我弄乱了选项和参数的顺序。如果我--dns在之后指定run,一切都会正常。

$ docker run --dns = 127.0.0.1我的/容器猫/etc/resolv.conf
域名服务器127.0.0.1

h


但是,这不起作用
-dnsmasq

您也--dns可以多次使用该选项。例如docker run --dns 8.8.8.8 --dns 127.0.0.1 my/container
Bruno Bieri
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.