Unter Unix kann keine Verbindung zum Docker-Daemon hergestellt werden: /var/run/docker.sock. Läuft der Docker-Daemon?

171

Ich habe alle im Internet verfügbaren Lösungen angewendet, kann Docker jedoch immer noch nicht ausführen.

Ich möchte Scrapy Splash auf meinem Server verwenden.

Hier sind die historyBefehle, die ich ausgeführt habe.

docker run -p 8050:8050 scrapinghub/splash
sudo docker run -p 8050:8050 scrapinghub/splash
sudo usermod -aG docker $(whoami)
sudo docker run -p 8050:8050 scrapinghub/splash
newgrp docker
sudo docker run -p 8050:8050 scrapinghub/splash
reboot
sudo docker run -p 8050:8050 scrapinghub/splash
docker run -p 8050:8050 scrapinghub/splash

Sie können sehen, dass ich versucht habe, meinen Server ebenfalls neu zu starten, aber es hat nicht geholfen.

siehe Ausgabe von ps -aux | grep docker

root@mani:/var/www/html# ps aux | grep docker
root      8524  0.0  0.8 127904 13964 ?        Ssl  17:21   0:00 /usr/bin/dockerd --raw-logs
root      8534  0.0  0.3  90588  5012 ?        Ssl  17:21   0:00 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc
root      8543  0.0  0.0   8812   764 pts/1    S+   17:21   0:00 grep --color=auto docker
root     16356  0.0  0.0  17200   964 pts/1    S    17:14   0:00 newgrp docker
root     20080  0.0  0.0  17200   964 pts/1    S    17:06   0:00 newgrp docker
root     30221  0.0  0.0  17200   964 pts/1    S    17:09   0:00 newgrp docker
Umair Ayub
quelle
Wenn Sie ps aux | ausführen grep docker, sehen Sie den Daemon-Prozess?
Rome_Leader
Mögliches Duplikat: stackoverflow.com/questions/21871479/…
BMitch
@ Rome_Leader siehe die Ausgabe in meiner Frage ...
Umair Ayub
3
Versuchen Sie dies: Sudo Service Docker Neustart
Haythem ROUIS
2
Sie können den Status Ihres Docker Deamon sehen, indem Sie dies sudo service docker statusüberprüfen : Überprüfen Sie, ob es aktiv ist
Haythem ROUIS

Antworten:

157

Sie können dies ausprobieren:

systemctl start docker

Es hat gut für mich funktioniert.

PS: Wenn es Befehle gibt, die Sie nicht ohne sudo ausführen können, versuchen Sie Folgendes:

gpasswd -a $USER docker
H.Gmz
quelle
10
Beim Ausführen des ersten Befehls wurde eine Fehlermeldung angezeigt: Failed to start docker.service: Unit docker.service is masked.Also musste ich Folgendes ausführen: systemctl unmask docker.service systemctl unmask docker.socket systemctl start docker.service
Chris Phan
50

Sie können diesen Fehler erhalten, wenn Docker nicht sauber heruntergefahren wird. Die folgende Antwort bezieht sich auf das Docker-Snap-Paket.

Führen Sie snap logs dockerFolgendes aus und suchen Sie nach:

Error starting daemon: pid file found, ensure docker is not running or delete /var/snap/docker/179/run/docker.pid

Das Löschen dieser Datei und das Neustarten von Docker haben bei mir funktioniert.

rm /var/snap/docker/<your-version-number>/run/docker.pid
snap stop docker
snap start docker

Achten Sie darauf , ersetzen , mit<your-version-number>‍ der entsprechenden Versionsnummer.

Niklas
quelle
Wie kann ich dies verhindern? Jedes Mal, wenn ich meinen PC einschalte, muss ich docker.pid entfernen!
Hamidreza
46

Renn einfach

sudo dockerd

dockerd ist der Daemon-Dienst für Docker-Container, da er nicht im Hintergrund ausgeführt wird. Wir können keine Aktionen im Zusammenhang mit dem Dienst ausführen, der neu gestartet werden muss.

Yash Pokar
quelle
10
Dies ist der einzige Befehl, der für mich funktioniert. Ich finde es lächerlich, dass man durch so viele Reifen springen muss, um Docker zum Laufen zu bringen.
Homunculus Reticulli
3
Es gibt mir FehlerError starting daemon: Devices cgroup isn't mounted
Vineet 'DEVIN' Dev
@fepegar Möglicherweise haben Sie Docker nicht richtig installiert
Yash Pokar
@YashPokar in der Tat, ich habe am Ende neu installiert und jetzt funktionieren die Dinge wie erwartet. Vielen Dank.
Fepegar
Einziger Befehl, der für mich in einem Docker-Container funktioniert, um einen Docker-Container zu starten. Benötige es für die Codeerstellung, um meine eigene Umgebung beim Erstellen zu erstellen. :-)
Wir sind Borg
21

Versuchen Sie es zunächst mit sudo , da der aktuelle Benutzer möglicherweise keine Zugriffsberechtigungen für die Kommunikation mit dem Docker-Daemon hat /var/run/docker.sock

Wenn es immer noch nicht funktioniert, stoppen Sie nach der Installation einfach den Docker-Daemon als,

$ sudo service docker stop

Führen Sie den folgenden Befehl aus, um den Dämon im Hintergrund zu starten:

$ sudo nohup docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

Um die Arbeit mit Docker zu vereinfachen, sollten Sie Ihren Benutzernamen zur Docker-Benutzergruppe hinzufügen. Das Hinzufügen eines Benutzers zur Gruppe kann mit dem folgenden Befehl erfolgen

$ sudo usermod -aG docker $USER

Dieser Schritt wird auch in der offiziellen Dokumentation der Docker-Schritte nach der Installation für Linux erwähnt ( https://docs.docker.com/engine/installation/linux/linux-postinstall/). ).

Die Benutzer von Ubuntu 16.04 können die folgenden Schritte ausführen:

Innerhalb der Datei /lib/systemd/system/docker.service ändern: ExecStart = / usr / bin / dockerd fd: // with ExecStart = / usr / bin / dockerd -H tcp: //0.0.0.0: 2375

In der Datei /etc/init.d/docker ändern:

DOCKER_OPTS = mit DOCKER_OPTS = "- H **** tcp: //0.0.0.0: 2375 "

und starten Sie dann Ihren Computer neu. Und fangen Sie an, mit Docker zu spielen.

mohan08p
quelle
1
Laufen sudo nohup docker daemon -H http://tcp://0.0.0.0:2375 () -H http://unix:///var/run/docker.sockgibt bash: syntax error near unexpected token ('`
Umair Ayub
1
Ich laufe redhat Linux
Umair Ayub
oh Entschuldigung. Zusätzliche Zeichen (), aktualisiert. Welche Version von RHEL? Überprüfen Sie einfach, welchen Wert Sie mit $ DOCKER_HOST erhalten?
Mohan08p
$ sudo systemctl ermöglicht Docker, den Docker-Dienst beim Booten zu starten.
Mohan08p
Ich versuche jetzt, Docker auf zu installieren CentOS Linux release 7.3.1611 (Core)... Aber jetzt ist der Fehler Your Linux kernel version 2.6.32-042stab116.2 is not supported for running docker. Please upgrade your kernel to 3.10.0 or newer.... kann ich den Kernel mit yum update kernel... aktualisieren ? Die Frage ist, wird alles auf meinem Server gelöscht? Es ist ein Live-Server mit einer Website, auf der es läuft. Ich möchte es nicht vermasseln.
Umair Ayub
9

Dies ist normalerweise passiert, wenn Sie Docker wahrscheinlich nicht gestoppt haben.

Lösen

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

dann "Docker ausführen ...", um Ihr Bild herunterzuladen und den Container wie gewohnt zu starten

Unschuldiger Anigbo
quelle
8

Ich habe dies gerade nach einer Neuinstallation von DOCKER aus den Hauptdokumenten getroffen. Das Problem für mich war, dass der Dienst unmittelbar nach der Installation nicht ausgeführt wird.

Mit diesen Befehlen können Sie sicherstellen, dass Docker aktiv ist, damit Ihr Befehl run es findet:

$ sudo service --status-all 
$ sudo service docker start
$ sudo service docker start
Paul McDaniel
quelle
7

Ich laufe auf root und habe es unten versucht, es hat funktioniert:

service docker start

export DOCKER_HOST="tcp://0.0.0.0:2375"
user11500628
quelle
3
Wenn dies auf Ihrem Host funktioniert, haben Sie effektiv kein Root-Passwort. Jeder, der Zugriff auf diesen Port hat, kann Befehle als Root auf Ihrem Host ausführen.
BMitch
5

Ich hatte dieses Problem, nachdem das Schließen des Dockers einen Container gezogen hat docker pull mongo. Zuerst bekam ich seltsame Fehler, also habe ich Docker gelöscht sudo apt-get purge docker.iound neu installiert sudo apt-get install docker.io... all dies hat nichts bewirkt. Ich konnte nicht einmal den Hallo-Welt-Container betreiben. Die richtige Lösung für mich war zumindest:

systemctl unmask docker.service
systemctl unmask docker.socket
systemctl start docker.service

Danach konnte ich Mongo ziehen und Hallo Welt laufen lassen.

Prost!

Jonathan Saylor
quelle
4

Hier ist die Lösung, die für mich unter Linux funktioniert

systemctl start docker.

Mohammad Heydari
quelle
2

Verwenden Sie dies im Ubuntu-Export. DOCKER_HOST = tcp: // localhost: 2375

Yash Keshri
quelle
Wenn dies auf Ihrem System funktioniert, haben Sie effektiv kein Root-Passwort. Jeder, der Zugriff auf diesen Port hat, kann Befehle als Root auf dem Host ausführen.
BMitch
2

export DOCKER_HOST = tcp: // localhost: 2375 ist perfekt für alle, die keinen Sudo-Zugriff haben und der Benutzer keinen Zugriff auf Unix: ///var/run/docker.sock hat

Mantas Marma
quelle
Dies ist auch nützlich für alle, die normalerweise keinen Root-Zugriff haben, aber leicht auf Ihrem Host root werden möchten. Jeder, der Zugriff auf diesen Port hat, kann Befehle als root ausführen.
BMitch
@BMitch Lust auszuarbeiten?
Fran Marzoa
@FranMarzoa von einem anderen Benutzer, dem Sie nicht vertrauen, oder sogar von einem anderen Host. Sie können jeden docker runBefehl mit dem Root-Benutzer im Container ausführen , privilegiert, mit Host-Namespaces auf PID und Netzwerk, und das Root-Dateisystem in die Box einbinden.
BMitch
2

Ich habe versucht, Docker (gerade installiert) in einer Instanz von AWS auszuführen, wenn die Meldung angezeigt wird. Ich schreibe nur sudo service docker startund funktioniert gut für mich.

Siehe auch AWS mit Docker

Dmarquina
quelle
2

Geben Sie hier die Bildbeschreibung ein

Ich vergesse einfach, den Docker Desktop auf meinem Mac auszuführen. Nachdem Sie Docker Desktop ausgeführt haben, können Sie loslegen.

Ping Woo
quelle
2

Diese Ausnahme tritt auf, wenn der Docker-Dienst nicht ausgeführt wird oder der angemeldete Benutzer keine Berechtigung zum Zugriff auf Docker hat und im Allgemeinen in RedHat

Die Verwendung des folgenden Befehls sollte das Problem beheben

Sudo Service Docker starten

Geben Sie hier die Bildbeschreibung ein

Sumit Arora
quelle
1

Ich hatte das gleiche Problem für gitlab CI, das den Knoten ausführt: lts image:

  • Ich habe gerade den Docker-Daemon neu gestartet und den Container neu gestartet, es hat bei mir funktioniert.
akshaymittal143
quelle
1

Dies hat bei mir funktioniert. Es funktioniert möglicherweise nur bei Ihnen, wenn Sie Ubuntu 16 oder 18 verwenden (14 funktioniert möglicherweise auch). Einfach auszuprobieren:

Gehen Sie zu Ubuntu Software und geben Sie Docker ein. Deinstallieren Sie Docker (108 MB), wenn es dort vorinstalliert ist. Docker installieren Führen Sie nun die Befehle aus und prüfen Sie, ob der gleiche Fehler auftritt

Der Fehler:

Geben Sie hier die Bildbeschreibung ein

Nachdem Sie die obigen Schritte ausgeführt haben. Geben Sie hier die Bildbeschreibung ein

Wie Sie sehen können, hat es funktioniert :)

Ashish Gupta
quelle
1

Ich hatte unter Linux das gleiche Problem, als ich Docker mit yum (yum install docker) installiert habe.

Lösung: Laden Sie die Docker-Binärdatei von der offiziellen Website herunter: Installieren , entpacken und befolgen Sie die Installationsschritte.

Denys
quelle
1

Keine der aktuellen Antworten funktionierte für meine Version dieses Fehlers. Ich verwende die Desktop-Version von Ubuntu 18. Die folgenden beiden Befehle haben das Problem behoben.

sudo snap connect docker:home :home

sudo snap start docker

Eric
quelle
1

Es hat bei mir funktioniert:

sudo systemctl unmask docker
sudo systemctl start docker
Md. Rakibul Islam
quelle
0

Für mich bestand die Lösung darin, einfach sicherzustellen, dass ich das richtige Docker-Paket installiert hatte. Für Ubuntu sind die abgeschriebenen Pakete beispielsweise:

  • Docker
  • Docker-Engine
  • docker.io
  • Containerd
  • runc

Informationen zur Installation finden Sie unter https://docs.docker.com . Zum Zeitpunkt des Schreibens werden Anweisungen für Ubuntu , CentOS , Debian und Fedora bereitgestellt .

RikH
quelle
Sie haben einige Schritte verpasst: Folgen Sie diesem Link, um das Repo zu signieren. medium.com/@sebagomez/…
Robert
@ Robert, oben beziehe ich mich auch auf den offiziellen docs.docker, um den PGP-Schlüssel zu erhalten. Dies ist sicherer als Benutzer, die es von dieser Site oder diesem Medium kopieren.
RikH
Ich habe die Ubuntu-Schritte ausprobiert und diese funktionieren nicht. Benötigen Sie den Signierprozess und den Link, den ich bereitgestellt habe.
Robert
@ Robert, danke Ich habe meine unvollständigen Anweisungen entfernt und beziehe mich stattdessen einfach auf die offizielle Dokumentation.
RikH
0

Stellen Sie sicher, dass die Informationen in diesem Pfad enthalten sind /etc/docker/daemon.json

{
  "registry-mirror": [
    "https://registry.docker-cn.com"
  ],
  "insecure-registries": [
    "192.168.199.100:5000"
  ]
}

löschen

"insecure-registries": [
    "192.168.199.100:5000"
]

und läuft gut, geben Sie hier die Bildbeschreibung ein

Chao Chen
quelle
0

Dies kann darauf zurückzuführen sein, dass auf der Festplatte kein Speicherplatz mehr vorhanden ist. Stellen Sie sicher, dass auf dem Gerät noch Speicherplatz vorhanden ist. Docker kann nicht gestartet werden, wenn kein Speicherplatz mehr vorhanden ist.

K - Die Toxizität in SO nimmt zu.
quelle
0

Verwenden docker start <your_container_name>

Stellen Sie dann mithilfe von eine Verbindung zur Datenbank her mssql -u <yourUsername> -p <yourPassword>

Wenn im ersten Schritt eine Fehlermeldung angezeigt wird, wird das Docker ausgeführt und der zweite Schritt ausgeführt.

Hinweis: Ich verwende Mac als primäres Betriebssystem. Dies ist möglicherweise die gleiche Antwort für Unix-basierte Betriebssysteme. Wenn nicht! Entschuldigung im Voraus.

Pavankumar AN
quelle
0

Ich habe auch die folgende Fehlermeldung erhalten, nachdem ich den Docker installiert und ausgeführt habe: Docker run hello-world

Unter Unix kann keine Verbindung zum Docker-Daemon hergestellt werden: /var/run/docker.sock. Läuft der Docker-Daemon?

Hier ist eine Lösung, was für mich funktioniert hat. Umgebung - Windows 10 (Vergessen Sie nicht, unter Windows zu aktivieren: Einstellungen> Update und Sicherheit> Entwicklermodus) - Ubuntu 18.04 LTS - Docker Desktop Version 2.3.0.2 (45183) - In Docker Desktop aktivieren: Daemon auf tcp: // verfügbar machen localhost: 2375 ohne TLS - Docker Desktop muss ebenfalls ausgeführt werden (mit Docker Hub verbunden ... einfach anmelden)

Aktualisieren Sie nach der Installation von Ubuntu das Repository

sudo apt-get update

So verwenden Sie ein Repository über HTTPS

sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common

Fügen Sie den offiziellen Docker GPG-Schlüssel hinzu:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key hinzufügen -

Stellen Sie sicher, dass Sie jetzt den Schlüssel mit dem Fingerabdruck haben

sudo apt-key fingerprint 0EBFCD88

Aktualisieren Sie das Repository

sudo apt-get update

Aktualisieren Sie das Docker-Repository

sudo add-apt-repository \ "deb [arch = amd64] https://download.docker.com/linux/ubuntu \ $ (lsb_release -cs) \ stabile"

Aktualisieren Sie das Repository erneut

sudo apt-get update

Befehl zum Installieren des Dockers in Version: 5: 18.09.9 ~ 3-0 ~ ubuntu-bionic

sudo apt-get installiere docker-ce = 5: 18.09.9 ~ 3-0 ~ ubuntu-bionic docker-ce-cli = 5: 18.09.9 ~ 3-0 ~ ubuntu-bionic containerd.io

Befehl zum Setzen von DOCKER_HOST

export DOCKER_HOST = "tcp: //0.0.0.0: 2375"

Hinweis: Fügen Sie den obigen Befehl in Ihr Profil ein, um mit dem Ubunto zu beginnen: Beispiel: "export DOCKER_HOST = 'tcp: //0.0.0.0: 2375'" >> ~ / .bashrc

Benutzer zur Docker-Gruppe hinzufügen

sudo usermod -aG docker $ USER

Starten Sie Ubuntu neu

(Schließen und öffnen Sie das Ubuntu-Fenster erneut.)

Testen der Installation (Verwenden Sie vor Docker-Befehlen NICHT mehr Sudo (es wird ein Fehler ausgegeben), der Benutzer "root" wurde bereits in die Docker-Gruppe aufgenommen.)

Docker laufen Hallo-Welt

Die folgende Meldung sollte angezeigt werden

Hallo von Docker! Diese Meldung zeigt an, dass Ihre Installation anscheinend ordnungsgemäß funktioniert.

Hinweis: Wenn dies fehlschlägt, führen Sie den Befehl erneut aus: export DOCKER_HOST = "tcp: //0.0.0.0: 2375"

export DOCKER_HOST = "tcp: //0.0.0.0: 2375"

Referenz: https://docs.docker.com/engine/install/ubuntu/ Sitzung: DOCKER ENGINE INSTALLIEREN

Weitere Versionen des Dockers, die mit Ubuntu installiert werden können, finden Sie im Repository mit dem folgenden Befehl:

apt-cache madison docker-ce

Installieren Sie dann die gewünschte Version des Dockers:

sudo apt-get installiere docker-ce = docker-ce-cli = containerd.io

Ukaliko
quelle
0

Für alle, die zum Zeitpunkt der Installation Probleme mit Docker haben.

Führen Sie die folgenden Befehle aus, wenn ein Fehler auf einen Fehler im Docker-Dienst hinweist.

$ sudo apt update

$ sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common

$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"

$ sudo apt update

$ apt-cache policy docker-ce

$ sudo apt install docker-ce
Hisham Javed
quelle
-1

Dieses Problem kann dauerhaft behoben werden, indem 1. systemctl enable docker 2. service docker start ausgeführt wird

JV Reddy
quelle
Scheint, als service start dockermüsste ich den Docker-Dienst jedes Mal starten, wenn ich den Computer neu starte.
Pran Kumar Sarkar
@PranKumarSarkar Nicht, wenn Sie "sudo systemctl enable docker" ausführen
GabrielBB