Ich erhalte die Fehlermeldung, dass ich keine Verbindung zum Docker-Daemon herstellen kann. Ich habe mir die Antworten anderer Leute angesehen, die ähnliche Probleme hatten, aber es hat nicht geholfen. Ich verwende die Version von Ubuntu 15.10. Ich werde versuchen, alle Informationen bereitzustellen, die ich habe.
root@# docker-compose -f docker-compose-deps.yml up -d
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?
If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
Docker-Version
root@# sudo docker version
Client:
Version: 1.9.1
API version: 1.21
Go version: go1.4.2
Git commit: a34a1d5
Built: Fri Nov 20 13:20:08 UTC 2015
OS/Arch: linux/amd64
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Docker-Compose-Version
root@# docker-compose --version
docker-compose version 1.5.2, build 7240ff3
Dies passiert, wenn ich versuche, den Dienst zu stoppen oder zu starten ...
root@# sudo service docker stop
stop: Unknown instance:
root@# sudo service docker start
docker start/running, process 5375
Wenn ich renne ps aux | grep docker
root@# ps aux | grep docker
root 4233 0.0 0.0 13692 2204 pts/15 S+ 10:27 0:00 grep --color=auto docker
Jede Hilfe wäre sehr dankbar. Lassen Sie mich wissen, wenn Sie weitere Informationen benötigen.
ubuntu
terminal
docker
docker-compose
Daveskylark
quelle
quelle
Antworten:
Nach 15 Minuten Debugging hatte ich den gleichen Fehler. Es stellt sich heraus, dass alles, was es braucht, ein
sudo
:) Schauen Sie sich [Erstellen einer Docker-Gruppe] hier https://docs.docker.com/engine/installation/linux/ubuntulinux/ an, um das sudo-Präfix zu entfernen.quelle
sudo
meiner Meinung nach nur eine Problemumgehung / ein Hack ist. Da der Teil, der eine Gruppe erstellt, hier nicht erklärt wird, nur ein Link angegeben wird und der Inhalt dieses Links geändert wurde, halte ich dies für eine Nur-Link-Antwort und er ist jetzt im Wesentlichen nutzlos (für den eigentlichen Fix-Teil). Könnten Sie vielleicht die Beschreibung hinzufügen, wie diese Gruppe hinzugefügt wird?sudo
ist auch eine schlechte Idee. Informationen zum Verwalten von Docker als Nicht-Root-Benutzer finden Sie in den Docker-Dokumenten: docs.docker.com/engine/installation/linux/linux-postinstall/…sudo usermod -aG docker $USER
, und es wird danach funktionieren.Ich hatte dieses Problem und wollte die Dinge nicht durcheinander bringen
sudo
. Bei der Untersuchung habe ich versucht, einige Informationen zu erhalten:Überraschenderweise hatte ich folgenden Fehler:
Aus irgendeinem Grund hatte ich nicht genügend Berechtigungen. Der folgende Befehl löste mein Problem:
Et voilà!
quelle
docker.sock
mit einer Nicht-Root-Gruppe gehaltendocker
. Aber wir könnten das durch-G
Flag während der Initiierung des Docker-Dämons ändern . In meinem Fall füge ich eine Gruppe für hinzu$USERNAME
, dh Docker-Gruppe hinzufügen und dann meinen Computer neu starten (Ubuntu 16.04, PC). Es funktioniert gut. Und dies wird in Docker-Dokumenten empfohlen.Es scheint, dass Ihr Problem durch einen alten Docker-Fehler verursacht wurde, bei dem die Socket-Datei nach dem Absturz von Docker nicht neu erstellt wurde. Wenn dies das Problem ist, sollte das Umbenennen der Socket-Datei das erneute Erstellen ermöglichen:
Da dieser Fehler behoben ist, erhalten die meisten Benutzer den Fehler
Couldn't connect to Docker daemon
wahrscheinlich, weil sie nicht zurdocker
Gruppe gehören und keine Berechtigung zum Lesen dieser Datei haben. Laufen mitsudo docker ...
wird das beheben, ist aber keine gute Lösung.Docker kann als Nicht-Root-Benutzer ausgeführt werden (ohne
sudo
) ausgeführt werden, der über die entsprechenden Gruppenberechtigungen verfügt. Die Linux-Dokumente nach der Installation enthalten die Details. Die Kurzversion:Dadurch können Benutzer in der
docker
Gruppe ausgeführtdocker
unddocker-compose
Befehle ohne ausgeführt werdensudo
. Docker selbst führt einen Root aus, der einige Angriffe zulässt. Sie müssen also immer noch vorsichtig sein, welche Container Sie ausführen. Siehe Docker-SicherheitsdokumentationWeitere Informationen finden .quelle
Ich hatte das gleiche Problem. Nachdem ich mir Notizen gemacht und einige Debugging-Ergebnisse analysiert hatte, löste ich schließlich den gleichen Fehler. Starten Sie zuerst den Dienst,
service docker start
Vergessen Sie nicht, Ihren Benutzer in die Docker-Gruppe aufzunehmen.
quelle
sudo
, als hätte ich es für andere repariert. Ich bin froh festzustellen, dass ich es tatsächlich vergessen habe. So einfach!Sie sollten Ihren Benutzer der "Docker" -Gruppe mit folgenden Elementen hinzufügen:
quelle
Ich habe diesen Fehler erhalten, wenn sich Dateien im
Dockerfile
Verzeichnis befanden, auf die der aktuelle Benutzer nicht zugreifen konnte.docker
konnte daher nicht den vollständigen Kontext auf den Dämon hochladen und brachte die Meldung " Konnte keine Verbindung zum Docker-Dämon unter http + docker: // localunixsocket herstellen ".quelle
docker build .
führt zu Berechtigungsproblemen.Eine Möglichkeit, dies zu beheben, besteht darin, zuerst Ihren Benutzer zur
docker
Gruppe hinzuzufügen, indem Sie Folgendes ausführenWICHTIG: Denken Sie daran, sich von Ihrem System (nicht nur von Ihrem Terminal) abzumelden und wieder anzumelden, damit dies wirksam wird!
quelle
Aus der Ausgabe von "ps aux | grep docker" geht hervor, dass der Docker-Daemon nicht ausgeführt wird. Verwenden Sie die folgenden Methoden, um festzustellen, was falsch ist und warum Docker nicht gestartet wird
$ sudo tail -f /var/log/upstart/docker.log
$ sudo docker -d -D
quelle
In meinem Fall wird Ihr Docker-Dienst möglicherweise gestoppt
Befehl zum Starten des Docker-Dienstes:
$ sudo systemctl start docker
Befehl zum Überprüfen, ob es gestartet wird:
$ sudo docker run hello-world
quelle
Ein weiterer Grund, warum dieser Fehler auftreten kann: Für mich war es eine fehlerhafte Bildpfaddefinition in
docker-compose.yml
:Sieht zuerst gut aus, aber ich hatte mich auf die Umgebung
CONTAINER_REGISTRY_BASE=eu.gcr.io/my-project/
eingestellt. Anscheinend hat der//
im Bildpfad diesen Fehler verursacht.quelle
versuche es einfach mit
sudo
. Es scheint ein Erlaubnisproblem zu sein!es hat bei mir funktioniert.
quelle
Ich habe Ubuntu 16.04 verwendet und dieses Problem auch gefunden, als ich Docker-Compose verwendet habe. Ich habe es behoben, indem ich diesen Befehl ausgeführt habe.
quelle
Gibt es eine geringe Möglichkeit, dass Sie den Standardcomputer gelöscht haben? Überprüfen Sie jedoch zuerst, ob alle Dateien vorhanden sind (OSX, ähnlich auf anderen Systemen).
Installieren Sie auch die Docker App, da die Wartung von Containern viel einfacher ist:
Ans Starten Sie die Docker-App vom Finder aus (warten Sie, bis der Dienst vollständig gestartet ist).
Überprüfen Sie dann die Installation mit:
Wenn in der Liste keine Maschinen vorhanden sind, erstellen Sie eine und starten Sie sie:
Danach sollten Build, Compose und alle anderen Befehle ordnungsgemäß funktionieren.
quelle
in meinem Fall liegt es an der Ubuntu-Erlaubnis,
Erlaubnis prüfen von
Wenn sie die Problemberechtigung drucken, verwenden Sie
quelle
Für mich war das Update eine neuere Version (1.24) von Installation
docker-compose
mit diesem Artikel .Die vorherige Version (1.17) wurde aus
ubuntu
dem Standard-Repository installiert, aber nach der Installation einer neueren Version konnte ich den Container starten. Hoffe es hilft jemandem.quelle
Ich denke, es liegt am Zugangsrecht, man muss nur schreiben
quelle
In meinem Fall habe ich den gleichen Fehler, wenn ich es versuche
docker-compose build
und meine Lösung wurde einfach hinzugefügtsudo
quelle
Ich fand das und es schien mein Problem zu beheben.
GitHub Fix Docker Daemon Crash
Ich habe den Inhalt meiner Datei docker-compose-deps.yml wie im Link gezeigt geändert. Dann rannte ich
docker-compose -f docker-compose-deps.yml up -d
. Dann habe ich es wieder geändert und es hat aus irgendeinem Grund funktioniert. Ich musste die Schritte in dem von mir bereitgestellten Link nicht fortsetzen, aber die ersten beiden Schritte haben das Problem für mich behoben.quelle