Ich versuche, einen dinner-dnsmasq-Container einzurichten, damit ich alle Docker-Container nach den Domänennamen suchen kann, anstatt fest codierte IPs zu haben (wenn sie sich auf demselben Host befinden). Dies behebt ein Problem mit der Tatsache, dass one cannot alter the /etc/hosts file in docker Container, und dies ermöglicht es mir, alle meine Container auf einfache Weise zu aktualisieren, durch Ändern einer einzigen Datei, die der Dnsmasq-Container verweist.Einrichten von Docker Dnsmasq
Es sieht so aus als hätte jemand die harte Arbeit für mich erledigt und eine dnsmasq container erstellt. Leider "funktioniert" das nicht für mich. Ich einen Bash-Skript geschrieben, den Behälter zu beginnen wie folgt:
name="dnsmasq_"
timenow=$(date +%s)
name="$name$timenow"
sudo docker run \
-v="$(pwd)/dnsmasq.hosts:/dnsmasq.hosts" \
--name=$name \
-p='127.0.0.1:53:5353/udp' \
-d sroegner/dnsmasq
Davor läuft, habe ich das dnsmasq.hosts Verzeichnis und eingefügt, um eine einzelne Datei in ihrem hosts.txt mit den folgenden Inhalten genannt:
192.168.1.3 database.mydomain.com
Leider wenn ich versuche, diese Domäne ping aus:
- der Host
- der dnsmasq Behälter
- ein anderer Behälter auf demselben Host
Ich erhalte immer die ping: unknown host
Fehlermeldung.
Ich versuchte, den dnsmasq Container ohne Daemon-Modus starten, damit ich seine Ausgabe debuggen konnte, was unten ist:
dnsmasq: started, version 2.59 cachesize 150
dnsmasq: compile time options: IPv6 GNU-getopt DBus i18n DHCP TFTP conntrack IDN
dnsmasq: reading /etc/resolv.dnsmasq.conf
dnsmasq: using nameserver 8.8.8.8#53
dnsmasq: read /etc/hosts - 7 addresses
dnsmasq: read /dnsmasq.hosts//hosts.txt - 1 addresses
ich, dass ich nicht die richtig -p
Parameter angegeben bin zu raten, wenn der Behälter zu starten. Kann mir jemand sagen, was es für andere Docker-Container sein soll, nach dem DNS zu suchen, oder ob das, was ich versuche, tatsächlich unmöglich ist?