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?

3voto

Aamir M Meman Punkte 1302

Der Docker-Dienst läuft möglicherweise nicht.

Wenn Sie auf einem RedHat/Fedora/CentOS sind, versuchen Sie bitte dies:

sudo systemctl start docker

Wenn Sie auf Ubuntu/Debian sind:

sudo service start docker

Docker wird auf Ihrem Host und dem entsprechenden Port gestartet.

2voto

Bill Zelenko Punkte 2160

Um dieses Problem zu beheben, musste ich den Docker-Dienst aktivieren:

sudo systemctl enable /usr/lib/systemd/system/docker.service

1voto

Nilesh Kande Punkte 31
  1. Ich hatte auch das gleiche Problem. Das Problem lag an den Sockets, die dem Docker-Daemon und dem Docker-Client zugewiesen waren.
  2. Zuerst war die Berechtigung für den Docker-Client auf docker.sock nicht gesetzt. Sie können sie mit "sudo usermod -aG docker $USER" setzen.
  3. Überprüfen Sie dann Ihre Bash-Datei, in der der Docker-Client läuft. Bei mir lief er auf 0.0.0.0:2375, während der Docker-Daemon auf einem Unix-Socket lief. (Dies wurde in der Konfigurationsdatei von dockerd festgelegt).
  4. Kommentieren Sie einfach die Befehlszeile aus und es wird funktionieren.
  5. Aber wenn Sie möchten, dass es auf dem TCP-Port anstelle des Unix-Sockets funktioniert, ändern Sie die Konfigurationsdatei von dockerd und setzen Sie sie auf 0.0.0.0:2375 und behalten Sie die Befehlszeile in Bash bei, wenn sie vorhanden ist, oder setzen Sie sie auf 0.0.0.0:2375.

1voto

Ali Amjid Punkte 51

Mein Problem war, dass der Standardpfad von docker.sock nicht dort war, wo der Docker-Daemon war.

Mein Standardpfad war /home/user/.docker, aber der Docker-Daemon war in /var/bin.

Ich habe eine Umgebungsvariable gesetzt, um die korrekte Adresse festzulegen, und das hat das Problem behoben.

export DOCKER_CONFIG = '/var/bin'

https://docs.docker.com/engine/reference/commandline/cli/

Ich habe Docker Desktop auf Ubuntu installiert, daher könnte das das Problem sein oder warum meine DOCKER_CONFIG nicht richtig eingestellt war.

1voto

Um dies zu beheben, müssen Sie die folgenden Befehle im Terminal eingeben. Ich werde jeden Schritt erklären:

# Docker von den apt-Paketen deinstallieren
$ sudo apt-get remove docker docker.io

# Entfernen Sie es aus den Bibliotheken, nur um sicherzugehen, dass es für immer verschwunden ist
$ sudo rm -rf /var/lib/docker/*

Wenn Sie die Dinge vereinfachen und mehr Zeit haben möchten, können Sie mein init Skript mit dem Parameter installDocker ausführen:

# Das Init-Skript von GitHub abrufen
$ wget https://github.com/dminca/dotfiles/blob/master/init

# Rechte zum Ausführen des Skriptes hinzufügen
$ chmod 755 init

# Führen Sie einfach das Skript mit dem Parameter installDocker aus
$ ./init installDocker

Ein Neustart ist optional, aber ich empfehle Ihnen, dies zu tun, um sicherzustellen, dass alles reibungslos verläuft.

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