2014-06-30 15 views
5

Ich verwende boot2docker auf meinem Mac. OSX Version 10.9.3 boot2docker Version 4.3.12 Docker Version 0.12.0Docker-Container, die keinen Host-DNS in boot2docker verwenden

Das boot2docker Bild ist ein Vagabund Feld VirtualBox. Ich habe eine Reihe von Vagabunden-Boxen ausprobiert (zum Beispiel stigkj/boot2docker). Alle von ihnen zeigen das Problem.

Wenn ich ssh in das Boot2docker-Image und schauen Sie in /etc/resolv.conf verwendet es den Nameserver 10.0.2.3.

ich ein einfaches Docker Bild mit dem Befehl booten:

docker run -i -t ubuntu /bin/sh 

in diesem Container auf /etc/resolv.conf Sehen, es 8.8.8.8 und 8.8.4.4 als Name-Server verwendet.

In der docker.log Datei auf dem boot2docker vm gibt diese Zeile:

2014/06/30 15:25:01 Local (127.0.0.1) DNS resolver found in resolv.conf and containers can't use it. Using default external servers : [8.8.8.8 8.8.4.4] 

Von dem, was ich verstehe, ist Docker soll den Name-Server des Hosts verwenden. Nur wenn der Host 127.0.0.1 als Nameserver verwendet, sollte er standardmäßig die Google Nameserver als Backup verwenden.

Der Host verwendet 127.0.0.1 nicht als Nameserver, aber es sieht so aus, als ob der Andocker dies glaubt. Irgendwelche Vorschläge, wie ich den Nameserver richtig erkennen kann?

+0

NB: FWIW für mich wurde behoben, indem Sie den Mac neu zu starten, nachdem ich Docker installiert. –

Antwort

8

Ich habe eine Lösung gefunden. Es scheint, dass das Boot2docker-Image den Docker-Daemon ausführt, bevor es das DNS vom Host abruft. Daher denkt boot2docker, dass der DNS beim Booten auf 127.0.0.1 gesetzt wird, dann ändert der Rechner ihn auf den korrekten Nameserver.

Die Lösung besteht darin, den Docker-Daemon neu zu starten, nachdem das Image gebootet wurde. In Vagabund, tat ich dies, indem Sie den folgenden Befehl an der entsprechenden Stelle in meinem Vagrantfile fügt hinzu:

config.vm.provision :shell, inline: "/etc/init.d/docker restart" 

es so aussieht, ist ein bekanntes Problem in boot2docker, die in einen der nächsten Version behoben werden: https://github.com/boot2docker/boot2docker/issues/357

2

Guthaben an @oillio für den Link zum Problem und die darin enthaltene Diskussion.

es auch in Windows 7-Umgebung boot2docker mit geschieht 1.0.1, folge ich den Vorschlag, in https://github.com/boot2docker/boot2docker/issues/357

$ sudo udhcpc # refresh the DHCP 
$ sudo /etc/init.d/docker restart # restart the service