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.


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.


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.


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


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.


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


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.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.