Problem mit Docker

32

Ich versuche über "Docker" in Ubuntu 15.04 zu lernen.

Wenn ich einen Befehl mit docker wie "docker run image" gebe, wird der folgende Fehler angezeigt:

FATA[0000] Post http:///var/run/docker.sock/v1.17/containers/create: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?

Ich verstehe nicht, was das bedeutet.

Rishi Kant
quelle
5
Ich habe diese Fehlermeldung erhalten und dann den Daemon mit gestartet sudo service docker start. Dann konnte ich rennen sudo docker run hello-world. Viel Glück.
Shellter

Antworten:

31

Es gibt zwei mögliche Gründe für diesen Fehler:

  1. Der Docker-Daemon wird nicht ausgeführt. Sie können das mit überprüfen sudo /etc/init.d/docker status.

  2. Der Docker-Dämon wird ausgeführt, ist jedoch so konfiguriert, dass er nicht abhört /var/run/docker.sock. Sie können einchecken, /etc/default/dockerob eine -HOption in angegeben ist DOCKER_OPTS.

Andreas Veithen
quelle
3
+1. Ich musste es nur benutzen, $ sudo service docker statusseit ich es bekam$ sudo /etc/init.d/docker status * Docker is managed via upstart, try using service docker status
IsaacS
Nach dem Ausführen sudo /etc/init.d/docker statuserkannte ich, dass der Docker-Dienst nicht verfügbar war. Ich habe ausgeführt sudo /etc/init.d/docker start, dann konnte ich mein Docker-Image ausführen.
Halil
Scheint / etc / default / docker auf systemd (Ubuntu 16.04+) nicht mehr nützlich zu sein. BTW auf systemd wäre die kanonische Möglichkeit, den Daemon-Status zu überprüfen sudo systemctl status docker.
Pablo A
38

Nach der Installation von Docker werden Sie aufgefordert, Ihren Benutzer der Docker-Gruppe hinzuzufügen. Führen Sie einfach den folgenden Befehl aus:

sudo usermod -aG docker $USER

Sie müssen Ihre Sitzung schließen und sich erneut anmelden, damit die Änderung wirksam wird.

Samoht
quelle
wahrscheinlich das einfachste. Ich weiß nicht, ob es funktioniert, aber (verwendet @ Decebal) Antwort.
Yair Daon
Ich habe diese Aufforderung nicht erhalten. Ich bin auf Raspberry Pi.
IgorGanapolsky
Führen Sie den Befehl aus, um sich später zur Docking-Gruppe hinzuzufügen sudo usermod -a -G docker <user>. Sehen Sie hier für weitere Informationen.
Hugh W
3
Schwerpunkt auf "Schließen Sie Ihre Sitzung" - danke!
Dolan Antenucci
Unter Ubuntu 18.04 mit Gnome musste ich das System neu starten, damit dies funktioniert. Nur aus- und wieder einzuloggen hat nicht funktioniert: /
Zoltán
15

Versuchen Sie, Ihr Betriebssystem nach der Installation von Docker neu zu starten, um Gruppenberechtigungen anzuwenden, wenn Ihr Benutzer der Docker-Gruppe beigetreten ist.

Aktualisieren:

Wenn Docker unter Ubuntu 14.04 installiert wird, empfiehlt das Installationsprogramm, was Ihr Benutzer der Docker-Gruppe hinzufügt, um auf Docker Service zuzugreifen.

Ansehen

Der Docker-Dämon wird an einen Unix-Socket anstelle eines TCP-Ports gebunden. Standardmäßig gehört der Unix-Socket dem Benutzer root und andere Benutzer können mit sudo darauf zugreifen. Aus diesem Grund wird der Docker-Daemon immer als Root-Benutzer ausgeführt. Um zu vermeiden, dass Sie sudo verwenden müssen, wenn Sie den Befehl docker verwenden, erstellen Sie eine Unix-Gruppe mit dem Namen docker und fügen Sie Benutzer hinzu. Wenn der Docker-Dämon gestartet wird, kann die Docker-Gruppe den Besitz des Unix-Sockets lesen / schreiben.

Quelle: https://docs.docker.com/installation/ubuntulinux/#create-a-docker-group

MURATSPLAT
quelle
2
Sie sollten erklären, warum dies hilfreich ist.
guntbert
1
@ guntbert Ich habe meine Antwort aktualisiert.
MURATSPLAT
@ MuratsPlat, Qbi, Gunbert Vielen Dank, ich finde die Lösung
Rishi Kant
Um die Gruppenberechtigung zu ändern. Sie müssen nicht neu starten. Abmelden ist genug.
Tim Wu
@TimWu Auf Ubuntu 18.04 mit Gnome musste ich das System neu starten - nur abmelden und wieder einchecken funktionierte nicht: /
Zoltán
10

versuchen Sie zu sudo docker imagesüberprüfen, ob ein Container <image>in Ihrem Host aufgerufen wird .

running docker run <image>startet einen Container, der <image>auf Ihrem Host-Computer aufgerufen wird. Wenn Ihr Host-Computer nicht über diesen Container verfügt, ruft docker automatisch einen Container mit dem Namen '' aus dem Repository-Hub ab, genau wie Sie es ausgeführt haben docker pull <image>. Wenn dann immer noch kein Bild mit dem Namen '' gefunden werden kann, wird diese Fehlermeldung angezeigt.

Sie können versuchen, zu ersetzen, hello-worldum festzustellen, ob Docker auf Ihrem Computer funktioniert.

sudo docker run hello-world

Sie sollten auch prüfen, ob Sie verwenden sollten sudo.

realhu
quelle
2
Wenn das Problem darin bestand, dass das OP nicht sudo verwendet, wurde die Fehlermeldung "Berechtigung verweigert" anstelle von "Keine solche Datei oder kein solches Verzeichnis".
Andreas Veithen
1
Ja, du hast recht. Ich habe es versucht, wenn Benutzer nicht die Erlaubnis haben, wäre die Fehlermeldung:FATA[0000] Get http:///var/run/docker.sock/v1.18/containers/json: dial unix /var/run/docker.sock: permission denied. Are you trying to connect to a TLS-enabled daemon without TLS?
realhu
2
Versuchen Sie, Berechtigungen zu erteilensudo usermod -a -G docker ec2-user
AB
4

Ich fand diesen Artikel hilfreich: https://docs.docker.com/articles/systemd/ ; Ich habe es in mehreren Umgebungen ausgeführt und gearbeitet, hoffe, es hilft Ihnen auch

Decebal
quelle
Nur-Link-Antworten werden nicht als akzeptabel angesehen. Bitte konkretisieren Sie Ihre Antwort, um vollständig zu sein.
Flimzy
2
Während dies theoretisch die Frage beantworten mag, wäre es vorzuziehen , die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen.
Mitch
1
Dieser Systemlink scheint tot zu sein. Hier ist ein weiterer Link docs.docker.com/engine/admin/systemd
wsams
2

Beim Versuch, ein Bild zu ziehen, wurde eine ähnliche Meldung angezeigt. Ich habe gerade das gemacht sudo suund konnte dann das Bild erfolgreich ziehen.

Omar Ahmed
quelle
2
Willkommen bei Ask Ubuntu! Ich empfehle , diese Antwort zu bearbeiten , um sie mit spezifischen Details zu erweitern. (Siehe auch Wie schreibe ich eine gute Antwort ?, um allgemeine Ratschläge zu erhalten, welche Arten von Antworten unter Ask Ubuntu als am wertvollsten erachtet werden.) Beachten Sie jedoch, dass Docker bereits mehrmals als Superuser ausgeführt wurde.
David Foerster
Ich habe die Lösung meines Problems.
Rishi Kant