Come configurare un server DNS personalizzato con Docker?


8

Devo aggiungere alcune righe affinché la /etc/hostsmia app Web funzioni all'interno di un contenitore Docker.

Docker /etc/hostsè di sola lettura.

Sto cercando di usare dnsmasq:

DA ubuntu: 14.04
# ...
Esegui 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
Servizio RUN dnsmasq start

Tuttavia, non riesco a far utilizzare Docker al mio server DNS:

$ docker --dns = 127.0.0.1 eseguire my / container cat /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4

Cosa mi sto perdendo?

Configurazione:

  • OS X 10.9.4
  • Docker versione 1.1.0, build 79812e3
  • boot2docker Versione client: v1.1.0, commit Git: 7e20d36

Risposte:


9

--dnsfunziona per docker runma non per docker build. Quindi la soluzione migliore è quella di regolare le impostazioni a livello globale con

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

Su Ubuntu ho inserito questa linea /etc/default/docker


Si noti che il /etc/default/dockerfile non viene utilizzato quando viene eseguito il daemon docker, è necessario modificare il daemon.jsonfile di configurazione. Vedi docs.docker.com/engine/reference/commandline/dockerd/…
Davide Icardi

6

Quello che mi manca è che ho incasinato l'ordine delle opzioni e degli argomenti. Se lo specifico --dnsdopo run, tutto funziona bene.

$ docker run --dns = 127.0.0.1 my / container cat /etc/resolv.conf
nameserver 127.0.0.1

Doh.


Questo non funziona comunque - dnsmasq non funziona ...
Alexander Gladysh,

Puoi anche usare l' --dnsopzione più di una volta. Ad esempiodocker run --dns 8.8.8.8 --dns 127.0.0.1 my/container
Bruno Bieri,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.