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?

42voto

kevthanewversi Punkte 3466

Wenn alle anderen Lösungen oben nicht funktionieren, können Sie versuchen, das Eigentum von /var/run/docker.sock zu überprüfen:

ls -l /var/run/docker.sock

Wenn Sie nicht der Besitzer sind, ändern Sie das Eigentum mit dem Befehl:

sudo chown *your-username* /var/run/docker.sock

Dann können Sie problemlos die Docker-Befehle ausführen :D

29voto

kvadityaaz Punkte 1441

Sie können den Befehl verwenden

sudo service docker stop && sudo service docker start

ODER

sudo service docker restart

um es einfach neu zu starten.

19voto

Robert Elwell Punkte 6545

Der beste Weg herauszufinden, warum Docker nicht funktioniert, besteht darin, den Daemon manuell auszuführen.

$ sudo service docker stop
$ ps aux | grep docker  # mach das, bis du /usr/bin/docker -d nicht mehr siehst
$ /usr/bin/docker -d

Der Docker-Daemon protokolliert in STDOUT, also wird er alles ausgeben, was er gerade tut.

Hier war mein Problem:

[8bf47e42.initserver()] Erstelle pidfile
2015/01/11 15:20:33 pid-Datei gefunden, sicherstellen, dass Docker nicht läuft oder /var/run/docker.pid löschen

Das lag daran, dass die Instanz von einer anderen virtuellen Maschine geklont worden war. Ich musste einfach die pid-Datei entfernen und danach funktionierte alles.

Natürlich, anstatt einfach davon auszugehen, dass dies funktioniert, würde ich vorschlagen, den Daemon ein weiteres Mal manuell zu starten und die Protokollausgabe nach weiteren Fehlern zu überprüfen, bevor du den Dienst wieder startest.

18voto

Reza S Punkte 8876

Führen Sie ps aux | grep docker aus, um zu sehen, ob der Daemon läuft. Falls nicht, führen Sie /etc/init.d/docker start aus.

17voto

kenorb Punkte 134883

Verwenden Sie Docker-CE-App

macOS

Verwenden Sie die neue Docker Community Edition App für macOS. Zum Beispiel:

  1. Deinstallieren Sie alle Docker Homebrew-Pakete, die Sie bisher installiert haben:

     brew uninstall docker-compose
     brew uninstall docker-machine
     brew uninstall docker
  2. Installieren Sie eine App manuell oder über Homebrew-Cask:

     brew install --cask docker

Hinweis: Diese App wird die erforderlichen Links zu docker, docker-compose, docker-machine usw. erstellen.

  1. Nachdem Sie die App ausgeführt haben, sehen Sie ein Docker-Wal-Icon im Statusmenü.
  2. Jetzt sollten Sie die Befehle docker, docker-compose, docker-machine wie gewohnt im Terminal verwenden können.

Verbunden:

Linux/Windows

Laden Sie das Docker CE von der Download-Seite herunter und folgen Sie den Anweisungen.

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