619 Stimmen

Docker kann keine Verbindung zum Docker-Dämon herstellen

Nachdem ich meine Docker-Version auf 0.8.0 aktualisiert habe, erhalte ich beim Eingeben von sudo docker version eine Fehlermeldung:

Client-Version: 0.8.0
Go-Version (Client): go1.2
Git-Commit (Client): cc3a8c8
2014/02/19 12:54:16 Kann keine Verbindung zum Docker-Dämon herstellen. Läuft 'docker -d' auf diesem Host?

Ich habe den Anweisungen folgt und den Befehl sudo docker -d eingegeben, und ich habe dies erhalten:

[/var/lib/docker|2462000b] +job initserver()
[/var/lib/docker|2462000b.initserver()] Server wird erstellt
open /var/lib/docker/aufs/layers/cf2414da53f9bcfaa48bc3d58360d7f1cfd3784e4fe51fbef95197709dfc285d: Datei oder Verzeichnis nicht gefunden[/var/lib/docker|2462000b] -job initserver() = ERR (1)
2014/02/19 12:55:57 initserver: open /var/lib/docker/aufs/layers/cf2414da53f9bcfaa48bc3d58360d7f1cfd3784e4fe51fbef95197709dfc285d: Datei oder Verzeichnis nicht gefunden

Wie löse ich das Problem?

6voto

Jonathan Hartley Punkte 14645

Ich hatte das gleiche Problem - "Kann keine Verbindung zum Docker-Dämon herstellen." (außer ich erhielt keine 'Datei nicht gefunden'-Fehler beim Versuch, den Server zu starten.)

'ps' zeigte, dass "/usr/bin/docker -d" immer noch lief

Mir wurde klar, dass ich es tatsächlich nie geschafft hatte, den Server selbst zu starten. Jeder Versuch hatte produziert

...
2014/03/24 21:57:29 pid-Datei gefunden, sicherstellen, dass Docker nicht läuft oder /var/run/docker.pid löschen

Also wurde mir nachträglich klar, dass die Installation von Docker vielleicht den Dämon bei Upstart registriert hatte, der ihn für mich gestartet hatte. Daher schlug das Versuchen, den Dämon zu töten, um ihn manuell neu zu starten, fehl (Operation nicht erlaubt). Also habe ich

sudo kill -9 

auf den Dämonenprozess angewendet. Ein anderer Dämon nahm sofort seinen Platz ein, und dieser neue erlaubt es meinem CLI-Client jetzt, eine Verbindung herzustellen:

$ sudo docker info
Containers: 0
Images: 0
Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Dirs: 0
WARNUNG: Keine Speicherbegrenzung unterstützt
WARNUNG: Keine Swap-Begrenzung unterstützt

6voto

Rahul Gupta Punkte 196

LINUX

Sie können diese Antwort verwenden https://stackoverflow.com/a/33596140/13997503 und selbst nach der Verwendung erhalten Sie immer noch den gleichen Fehler. Dann haben Sie möglicherweise zuvor Docker Desktop installiert und wechseln nun zu Docker Engine.

Sie können die Docker Desktop-Dienstdateien mit diesem Befehl entfernen:

$ rm -rf ~/.docker

5voto

Deko Punkte 994

Ich hatte gerade das gleiche Problem, lief auf Amazon AWS.

Hier ist, was ich versucht habe:

  • Set up docker-machine lokal mit einer bereits vorhandenen AWS-Instanz
  • Verwendete generische Einrichtung
  • Es hat irgendwie eine Verbindung hergestellt, aber da der Remote-Port geschlossen war, ist es fehlgeschlagen
  • Nachdem der Docker-Daemon sich geweigert hat, hochzufahren, hat das Ausführen von dockerd funktioniert...

Es wurde auf der Remote-Maschine Folgendes getestet:

service docker start # Auch Neustart, ohne Erfolg
systemctl start docker # Auch Neustart, ohne Erfolg
dockerd # Erfolgreich

Ich habe /var/lib/docker entfernt und alles deinstalliert, aber nach der Neuinstallation war kein Erfolg. Leider habe ich keine Protokolle von den Fehlern gespeichert, aber docker.service hat einfach die Startverweigerung gemeldet.

Was schließlich mein Problem gelöst hat, war im Grunde:

sudo usermod -aG docker $(whoami)

4voto

wuranbo Punkte 101

Ich habe das gleiche Problem. In CentOS 6.5:

ps aux |grep `cat /var/run/docker.pid`

Wenn kein Docker-Daemon-Prozess existiert, gebe ich ein:

docker -d

Dann Strg + D, um Docker zu stoppen. Da wir die Option -d verwenden, wird Docker als Daemon ausgeführt. Jetzt können wir ausführen:

service docker start

Dann kann ich ein docker pull centos machen. Das war's.

HINWEIS: Wenn das nicht funktioniert, können Sie yum update versuchen und dann diese Schritte wiederholen, weil ich vorher yum install verwendet habe.

4voto

Ermias K Punkte 106

Wenn Sie OS X mit dem Docker-Tool verwenden, befolgen Sie dies.

Starten Sie den Daemon neu und konfigurieren Sie Ihre Umgebung:

docker-machine restart

Und dann

docker-machine env

Zuletzt,

eval $(docker-machine env)

Um zu testen, ob der Daemon läuft:

docker ps -a oder docker-machine ls. Hier werden alle Container aufgelistet.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X