Es kann keine Verbindung zum Docker-Daemon unter "unix: ///var/run/docker.sock" hergestellt werden.

Docker wird immer beliebter, da Anwendungen mithilfe von Containern einfach erstellt, bereitgestellt und ausgeführt werden können. Mithilfe von Containern können Entwickler eine Anwendung mit all ihren Bibliotheken und Abhängigkeiten verpacken, bevor sie als ein vollständiges Paket bereitgestellt wird. Installieren Docker unter Linux ist relativ einfach. Alles, was Sie tun müssen, ist, ein paar Befehle im Terminal auszuführen, und schon kann es losgehen.

Dies ist jedoch möglicherweise nicht für alle Benutzer gleich, selbst nach einer erfolgreichen Installation. Einer der am häufigsten auftretenden Fehler ist:Es kann keine Verbindung zum Docker-Dämon hergestellt werden unter (unix: ///var/run/docker.sock. Läuft der Docker-Dämon?) Dieser Fehler kann auftreten, wenn verschiedene Docker-Befehle wie Docker-Ausführung, Docker-Informationen, Docker-Pull, Docker-Stopp usw. ausgeführt werden.

Was verursacht den Fehler: Es kann keine Verbindung zum Docker-Daemon hergestellt werden?

Nachdem wir zahlreiche Beschwerden von Entwicklern erhalten hatten, haben wir uns entschieden, einzutauchen und effektive Lösungen zu finden. Einige der Gründe, die diesen Fehler auslösen, sind:

  • Der Docker-Daemon ist nichtLaufen.
  • Docker nichtschließen sauber.
  • Mangel anRoot-Rechte um den Docker-Dienst zu starten.

Nachdem Sie ein grundlegendes Verständnis der Problemursache haben, schauen wir uns die verschiedenen verfügbaren Lösungen an.

Lösung 1: Starten Sie den Docker-Dienst mit systemctl

Wenn Sie gerade die Neuinstallation eines Dockers unter Ubuntu abgeschlossen oder Ihren PC neu gestartet haben, besteht eine hohe Wahrscheinlichkeit, dassDocker-Service istnicht laufen. Docker-Daemon (dockerd) ist der Systemdienst für Docker. Dieser Dienst verarbeitet verschiedene Docker-Objekte wie Images, Container, Netzwerke und Volumes und lauscht den Docker-API-Anforderungen.

Der Befehl Systemctl ersetzt das alte SysV-Init-Systemverwaltet systemd-Dienste läuft auf Linux-Systemen. Wenn Sie kein systemctl in Ihrem System haben, machen Sie sich keine Sorgen. benutze dieBedienung Befehl wie unten beschrieben.

Hinweis: Diese Methode funktioniert nur für Benutzer, die Docker mit dem APT-Paketmanager installiert haben. Wenn Sie Docker über installiert habenSNAP, beziehen aufLösung 5unten.

  1. Öffnen Sie das Terminal und führen Sie den ersten Befehl aus -Docker entlarven.
sudo systemctl entlarvt Docker

Wenn wir versuchen, den Docker-Dienst zu starten, wenn der Docker maskiert ist, wird möglicherweise der Fehler "Docker konnte nicht gestartet werden. Service: Gerät ist maskiert" angezeigt. Die Maske kann als robustere Version der Deaktivierung angesehen werden. Wenn eine Einheitendatei maskiert ist, ist die Einheit mit "dev / null" verknüpft. Sie können den Status aller Einheitendateien mit dem Befehl "$ systemctl list-unit-files

2. Sobald die Docker-Einheit ist entlarvt, wir können starte den dockerDaemon mit dem Befehl systemctl. Das Docker Daemon verwaltet Docker-Objekte wie Images, Container und Docker-API-Anforderungen. Führen Sie den folgenden Befehl in der Befehlszeile aus.

Systemctl Docker starten

3. Zu überprüfen ob der Docker-Service ist aktiv und läuft. Wir werden die verwendensystemctl status Befehl, der den aktuellen Status des jeweiligen Dienstes anzeigt. Führen Sie den folgenden Befehl auf Ihrem Terminal aus.

systemctl status docker

Auf dem obigen Bild können wir das sehenDer Docker ist aktiv und läuft.

Lösung 2: Bereinigen Sie einen fehlgeschlagenen Docker-Pull und starten Sie den Docker-Dienst

Es gibt Fälle, in denen Sie Docker möglicherweise unerwartet schließen, während Sie einen Container ziehen. Solche Situationen werden die maskieren docker.service undDocker .socketDateien. Docker.socket ist eine Datei unter ‘/var/run/docker.sock’ und wird verwendet, um mit dem Docker-Daemon zu kommunizieren. Wir werden müssenentlarven Die Dateien mit zwei Einheiten - Docker .service und Docker.daemon zuvorweiter zuDocker starten.

  1. Starte denTerminal und führen Sie dieBefehle unten:
systemctl entlarvt docker.service systemctl entlarvt docker.socket systemctl startet docker.service

Wenn der Fehler auch nach Ausführung der folgenden Befehle weiterhin auftritt, müssen wir dies tun löschen die Dateien in der Containerd Verzeichnis, bevor Sie Docker erneut starten. Containerd wurde in Docker 1.11 eingeführt und dient zur Verwaltung des Lebenszyklus von Docker-Images.

2. Öffnen Sie das Terminal und führen Sie die folgenden Befehle aus. Stellen Sie sicher, dass Sie das kennen Root-Passwort da wir erhöhte Berechtigungen benötigen, um die Befehle auszuführen.

sudo su service docker stop cd / var / run / docker / libcontainerd rm -rf enthaltend / * rm -f docker-containerd.pid service docker start

Lösung 3: Starten Sie den Dockerd (Docker Daemon)-Dienst

Dockerd ist der Docker-Daemon, der Docker-APIs abhört und die verschiedenen Docker-Objekte verwaltet. Dockerd kann als Alternative zum Befehl „$ systemctl Docker startenWird auch zum Starten des Docker-Daemons verwendet.

  1. Öffnen Terminal und Dockerd starten indem Sie den folgenden Befehl ausführen:
sudo dockerd

Lösung 4: Starten Sie Docker mit dem Befehl Service

Wenn Sie die verwenden SysV-Init-System, dann funktioniert der Befehl systemctl nicht für Sie. Wir müssen das verwenden Servicebefehl zu Starten Sie den Docker-Daemon.

  1. Starten Sie das Terminal und ausführen die folgenden Befehle:
sudo service --status-all sudo service docker start

Lösung 5: Starten Sie den Docker-Dienst mit Snap

Wenn Sie Docker mit dem installiert habenSnap-Paket-ManagerSie müssten den Befehl snap verwenden, um den Docker-Daemon zu verwalten.

Im Allgemeinen verwaltet Snap ihre Dienste automatisch. In Situationen wie diesem Fehler ist jedoch ein manueller Eingriff erforderlich. Zu den Argumenten, die Sie mit dem Befehl snap verwenden können, gehören stop, start und restart. In unserem Fall verwenden wir den Startparameter.

  1. Öffnen Sie das Terminal und führen Sie den folgenden Befehl ausStarten Sie Docker.
sudo snap start docker

2. Führen Sie den folgenden Befehl aus überprüfen ob die Der Docker-Dienst wurde gestartet.

Sudo Snap Services

Das wird aufführen alles läuft Snap-Services.

Wenn die oben genannten Befehle für Sie nicht funktionieren, versuchen Sie es Anschließen des Dockers: Home-Stecker da es standardmäßig nicht automatisch verbunden wird. Einmal getan, Start das Docker-Service.

3. Starten Sie das Terminal und führen Sie die folgenden Befehle aus:

sudo snap connect docker: home: home sudo snap start docker

Lösung 6: Starten Sie Docker für Benutzer ohne Root P.Privilegien

Der Fehler kann auch aufgrund von auftreten Mangel an erhöhten Privilegien und der Benutzer hat keinen Zugriff auf ‚unix:///var/run/docker.sock‘. Zum Glück gibt es einen Workaround. Wir werden die Docker Host-Variable über Port 2375 in den localhost exportieren.

  1. Öffnen Sie das Terminal und führen Sie den folgenden Befehl aus:
export DOCKER_HOST = tcp: // localhost: 2375

Lösung 7: Installieren Sie Docker neu

Wenn die oben genannten Lösungen den Fehler nicht beheben, besteht eine hohe Wahrscheinlichkeit, dass Installationsfehler auftreten. Befolgen Sie die Schritte auf der offiziellen Docker-Website, um Docker korrekt auf Ihrem Linux-System zu installieren.

Facebook Twitter Google Plus Pinterest