WebアプリがDockerコンテナー内で機能するように、/etc/hosts
に数行追加する必要があります。
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
何が欠けていますか?
構成:
--dns
はdocker run
ですが、docker build
。より良い解決策は、設定をグローバルに調整することです
DOCKER_OPTS="--dns=my-private-dns-server-ip --dns=8.8.8.8"
Ubuntuでは、この行を/etc/default/docker
私が見落としているのは、オプションと引数の順序を混乱させたことです。 run
の後に--dns
を指定すると、すべて正常に動作します。
$ docker run --dns = 127.0.0.1 my/container cat /etc/resolv.conf nameserver 127.0.0.1
どー。