我需要在/ etc / hosts中添加几行,以便我的web-app在Docker容器中工作.
Docker的/ etc / hosts是只读的.
我正在尝试使用dnsmasq:
FROM ubuntu:14.04 # ... RUN 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 RUN 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 RUN echo 'address="/mydomain/127.0.6.1"' >> /etc/dnsmasq.d/0hosts RUN service dnsmasq start
但是,我无法让Docker使用我的DNS服务器:
$docker --dns=127.0.0.1 run my/container cat /etc/resolv.conf nameserver 8.8.8.8 nameserver 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中