Moby: resolv.conf keine solche Datei o Verzeichnis

Erstellt am 26. März 2014  ·  17Kommentare  ·  Quelle: moby/moby

Ich bin gerade gegangen, um Docker auf Ubuntu 12.04 aus dieser Anleitung zu installieren:
http://docs.docker.io/en/latest/installation/ubuntulinux/
und ich habe das

➜ ~ sudo docker run -i -t ubuntu / bin / bash
26.03.2014 11:45:17 Fehler: open /etc/resolv.conf: Keine solche Datei oder kein solches Verzeichnis

irgendwelche Vorschläge?

arenetworking kinbug

Hilfreichster Kommentar

Ich habe dieses Problem und es scheint ein Nebeneffekt der NetworkManager-Konfiguration auf meiner Distribution Sabayon Linux zu sein.

In meinem Fall ist /etc/resolv.conf ein Symlink zu /etc/resolvconf/run/resolve.conf und wird erst erstellt, nachdem NetworkManager eine Verbindung zu einem Netzwerk hergestellt hat. Dadurch kann Docker beim Booten nicht gestartet werden, aber es startet einwandfrei, nachdem ich mich angemeldet und eine Verbindung zu einem Netzwerk hergestellt habe.

Alle 17 Kommentare

Problem mit Ihrem Host-Computer. Erstellen Sie /etc/resolv.conf füllen Sie es mit den entsprechenden DNS-Informationen und wiederholen Sie den Befehl.

Dies ist kein Docker-Fehler, sondern ein Problem, das durch das Fehlen von /etc/resolv.conf auf Ihrem Host verursacht wird. Ich kann das Problem reproduzieren, wenn auf dem Host keine resolv.conf vorhanden ist.

Bitte reparieren Sie Ihr Linux-System.

IMHO ist die Datei nicht notwendig, oder? Es sollte sich also nicht um ein kaputtes Betriebssystem handeln.
http://man7.org/linux/man-pages/man5/resolv.conf.5.html

Wenn diese Datei nicht vorhanden ist, wird nur der Nameserver auf dem lokalen Computer abgefragt.

In diesem Fall sollte der DNS-Server auf Ihrem lokalen Computer ausgeführt werden.

Ich habe dieses Problem und es scheint ein Nebeneffekt der NetworkManager-Konfiguration auf meiner Distribution Sabayon Linux zu sein.

In meinem Fall ist /etc/resolv.conf ein Symlink zu /etc/resolvconf/run/resolve.conf und wird erst erstellt, nachdem NetworkManager eine Verbindung zu einem Netzwerk hergestellt hat. Dadurch kann Docker beim Booten nicht gestartet werden, aber es startet einwandfrei, nachdem ich mich angemeldet und eine Verbindung zu einem Netzwerk hergestellt habe.

@OOPMan Sollten Sie in Ihrem Init-Skript nicht darauf angewiesen sein, dass NetworkManager aktiv ist, bevor der Docker-Dienst gestartet wird?

Ich frage mich auch, ob dies ein Upstream-Go-Problem (speziell "netgo") sein sollte. Prüfen wir tatsächlich direkt oder nur indirekt über die netgo-Implementierung nach resolv.conf?

Ich habe festgestellt, dass mein Problem nichts mit NM oder Sabayon Linux zu tun hat :-)

Ich laufe auf einem Asus X550CC. Insgesamt eine anständige Maschine, aber es gibt eine Einschränkung: Die Wi-Fi-Hardware ist unter Linux deaktiviert, bis Sie schlafen und dann fortfahren. Dies bedeutet, dass das System beim Booten, das nicht mit einem kabelgebundenen LAN verbunden ist, grundsätzlich entscheidet, dass kein funktionierendes Netzwerk vorhanden ist und daher /etc/resolv.conf nichts enthält. Docker mag das nicht und startet daher nicht.

Sobald ich suspendiert habe, ist alles in Ordnung und Docker startet.

@unclejack @crosbymichael Ich
Warum werden in /etc/resolv.conf Docker-Container ausgeführt?

Ich denke, es gab keine gute Antwort darauf und da ich dies auch erlebe, öffne ich wieder. @thaJeztah könnten Sie Netzwerkbetreuer

Das Handbuch resolv.conf (von glibc) besagt:

   If this file does not exist, only the name server on the local
   machine will be queried; the domain name is determined from the
   hostname and the domain search path is constructed from the domain
   name.

Daher sollte davon ausgegangen werden, dass ein Linux-System ohne resolv.conf ein gültiges Linux-System ist.

Andere Software wie die DNS-Ladelogik von golang resolv.conf behandelt fehlende oder unzugängliche resolv.conf auf dieselbe Weise: https://golang.org/src/net/dnsconfig_unix.go

Außerdem ist resolv.conf auf Systemen, die nicht libc-NSS-Module wie nss-resolve oder winbind, ldap usw. verwenden, nicht erforderlich.

/ cc @sanimej

Dieser Fehler verhindert auch, dass Docker bei einigen Distributionen offline verwendet wird.

Es wurde versucht, das Problem zu beheben: https://github.com/docker/libnetwork/pull/1847

Erstellen Sie einfach eine leere Dateiname 'resolv.conf' an der Stelle, mein Problem gelöst ~

Ich sehe, dass das Update dafür über https://github.com/moby/moby/commit/1ddeb11835600127a3319fc0dd3764e57ffbf521 zusammengeführt wurde , das in der kommenden Version 17.10 enthalten sein wird. https://github.com/docker/docker-ce/blob/17.10/components/engine/vendor/github.com/docker/libnetwork/sandbox_dns_unix.go

Schließen, da dies auf Master 👍 behoben ist

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen