Comment configurer un serveur DNS personnalisé avec Docker?


8

J'ai besoin d'ajouter quelques lignes pour /etc/hostsque mon application Web fonctionne dans un conteneur Docker.

Docker /etc/hostsest en lecture seule.

J'essaie d'utiliser dnsmasq:

DE 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

Cependant, je ne peux pas demander à Docker d'utiliser mon serveur DNS:

$ docker --dns = 127.0.0.1 exécutez mon / container cat /etc/resolv.conf
serveur de noms 8.8.8.8
serveur de noms 8.8.4.4

Qu'est-ce que je rate?

Configuration:

  • OS X 10.9.4
  • Docker version 1.1.0, build 79812e3
  • Boot2docker Client version: v1.1.0, Git commit: 7e20d36

Réponses:


9

--dnsfonctionne pour docker runmais pas pour docker build. La meilleure solution consiste donc à ajuster les paramètres globalement avec

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

Sur Ubuntu, je mets cette ligne en /etc/default/docker


Notez que le /etc/default/dockerfichier n'est pas utilisé lorsque le démon docker est exécuté, vous devez modifier le daemon.jsonfichier de configuration. Voir docs.docker.com/engine/reference/commandline/dockerd/…
Davide Icardi

6

Ce qui me manque, c'est que j'ai foiré l'ordre des options et des arguments. Si je précise --dnsaprès run, tout fonctionne bien.

$ docker run --dns = 127.0.0.1 my / container cat /etc/resolv.conf
serveur de noms 127.0.0.1

Doh.


Cela ne fonctionne pas cependant - dnsmasq est en panne ...
Alexander Gladysh

Vous pouvez également utiliser l' --dnsoption plusieurs fois. Par exempledocker run --dns 8.8.8.8 --dns 127.0.0.1 my/container
Bruno Bieri
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.