Compose: [Mac] Docker-Compose wird aufgrund des Fehlers "Verbindung zum Docker-Daemon konnte nicht hergestellt werden" nicht ausgeführt

Erstellt am 13. Okt. 2015  ·  31Kommentare  ·  Quelle: docker/compose

Ich bin sehr verwirrt darüber, wie Docker-Compose auf meinem Mac funktionieren soll. Hier sind die Schritte, die ich unternommen habe:

1) Installierte Docker Toolbox (Docker Version 1.8.2)
2) Versucht, docker-compose up auszuführen, hat aber Illegal instruction: 4 Fehler gemäß # 1885 erhalten
3) Um das Problem zu beheben, habe ich docker-compose mit pip über sudo pip install -U docker-compose installiert
4) Wenn ich jetzt docker-compose up Couldn't connect to Docker daemon - you might need to run starte, bekomme ich .

Das ist sehr verwirrend, da die gesamte Dokumentation besagt, dass boot2docker veraltet ist. Und der Versuch, boot2docker zu installieren, funktioniert auch bei mir nicht.

Ich bin mir nicht sicher, was ich sonst noch versuchen soll. Derzeit ist Docker-Compose v1.4.2 installiert.

kinquestion

Hilfreichster Kommentar

Wir haben diese Fehlermeldung kürzlich behoben (die Korrektur wird in der nächsten Version erfolgen).

Es sollte "Sie müssen möglicherweise docker-machine start default ausführen" stehen.

Wenn Sie immer noch keine Verbindung herstellen können und docker-machine wird, können Sie compose so konfigurieren, dass der Computer mit eval "$(docker-machine env default)"

Alle 31 Kommentare

Wir haben diese Fehlermeldung kürzlich behoben (die Korrektur wird in der nächsten Version erfolgen).

Es sollte "Sie müssen möglicherweise docker-machine start default ausführen" stehen.

Wenn Sie immer noch keine Verbindung herstellen können und docker-machine wird, können Sie compose so konfigurieren, dass der Computer mit eval "$(docker-machine env default)"

OK danke. Mein Problem liegt anscheinend bei der Docker-VM. Es gibt mir alle möglichen TLS-Fehler, selbst wenn ich reguläre Docker-Befehle wie docker images ausführe.

Get http:///var/run/docker.sock/v1.20/images/json: dial unix /var/run/docker.sock: no such file or directory.
* Are you trying to connect to a TLS-enabled daemon without TLS?
* Is your docker daemon up and running?

Ich werde es mit dem Docker-Team aufnehmen.

AKTUALISIEREN

Für alle, die auch dieses Problem haben. Die Lösung für mich war:

  • Führen Sie die App Docker Quickstart Terminal
  • Führen Sie docker-machine restart default
  • Führen Sie eval $(docker-machine env default)

Anscheinend müssen Sie die eval $(docker-machine env default) jedes Mal ausführen, wenn Sie das Schnellstart-Terminal ausführen.

Ich erhalte den gleichen Fehler, möchte aber nicht den Standardcomputer verwenden, sondern einen anderen Computer, der mit dem Treiber amazonec2 Ist das möglich?

Ja. Compose verwendet die Engine, die in der Umgebungsvariablen DOCKER_HOST ist (was durch eval $(docker-machine env ....) .

ah danke, ich wusste nichts über DOCKER_HOST !!
Warum nicht einen Befehlszeilenparameter hinzufügen, der diesen Wert überschreibt?

Ich möchte nur etwas für jeden hinzufügen, der dies in Zukunft besucht ... Ich habe dieses Problem jedes Mal, wenn ich eine neue Shell öffne, also habe ich eval $(docker-machine env default) zu meinem ~/.bash_profile hinzugefügt. Arbeitet ein Vergnügen. Natürlich kann mir hier jemand sagen, dass dies eine sehr schlechte Idee (TM) ist: smile:

Ja es funktioniert. Aber warum eval $ (Docker-Maschine env default) plötzlich auswerten. Es hat vorher gut funktioniert

Ja, ich bin mir auch nicht sicher. Arbeitete auch früher für mich.

eval $(docker-machine env default) funktioniert bei mir! Vielen Dank :)

Eval "$ (Docker-Maschine env default)" hat funktioniert, danke!

Ich bin immer noch nicht ganz zufrieden mit der Lösung, eval $(docker-machine env default) zu ~/.bash_profile hinzuzufügen (obwohl ich es vorgeschlagen habe), da das Öffnen eines neuen Terminalfensters um etwa 2 Sekunden verzögert wird. Hat jemand bessere Ideen?

@shankiesan alias eval_evil_docker="eval $(docker-machine env default)"

Hah ja ich denke das würde @michahell funktionieren . Sie müssen immer noch etwas tun, bevor Sie Docker verwenden. Nicht ideal, aber nicht schlecht!

@shankiesan Die einzige andere Option, die ich sehen kann, ist das Exportieren der aus docker-machine env default in .bash_profile erzeugten Variablen. Ja, die IP könnte sich theoretisch ändern, aber in Wirklichkeit ist dies weitaus weniger wahrscheinlich als die Verzögerung beim täglichen Öffnen einer neuen Shell. Wenn dies der Fall ist, können Sie diese jederzeit aktualisieren :-)

Das ist eine gute Idee @lewistaylor . Ich habe das versucht, bevor es nicht funktioniert hat, aber diesmal hat es einen Bedienerfehler gegeben. Schön, das ist ein toller Vorschlag: +1:

@shankiesan @lewistaylor wow, ich kann nicht verstehen, dass ich mir das nicht ausgedacht habe . noch bessere Lösung: +1:

Dieses Problem besteht weiterhin. Die einzige Lösung ist die Verwendung

$ eval $(docker-machine env the-vm-name) // which doesnt give any output & without it we get the error
$ docker-compose up

Manchmal habe ich das gleiche Problem, aber es tritt NUR auf, wenn ich mein MacBook schließe. Wenn ich das System neu starte, startet es möglicherweise einwandfrei, möglicherweise nicht. Wenn nicht, starte ich erneut und es funktioniert normalerweise. Ich vermute, dass wahrscheinlich das Problem in den IP / Ports ist, nur raten, denn wenn ich meinen Laptop mit nicht geschlossenen Programmen (wie PHPStorm) neu starte, funktioniert es normalerweise nicht. Wenn ich alle laufenden Programme schließe und neu starte, funktioniert es.

+1

@lewistaylor @shankiesan @michahell Wie exportiert man die Variablen von docker-machine env default in .bash_profile? Ich bin nicht so gut mit Bash, daher würde ich mich über Hilfe bei der Implementierung dieses Fixes freuen.

Lassen Sie Docker-Maschine / Beiboot / Boot2docker fallen und verwenden Sie Docker für Mac
wird die offizielle Laufzeit
Am 3. Juni 2016 um 08:03 Uhr schrieb "nwshane" [email protected] :

@lewistaylor https://github.com/lewistaylor @shankiesan
https://github.com/shankiesan @michahell https://github.com/michahell
Wie exportieren Sie die Variablen aus Docker-Maschine env Standard in
.bash_profile? Ich bin nicht so gut mit Bash, also würde ich mich über Hilfe freuen
Implementierung dieses Fixes.

- -
Sie erhalten dies, weil Sie erwähnt wurden.
Antworte direkt auf diese E-Mail und sieh sie dir auf GitHub an
https://github.com/docker/compose/issues/2180#issuecomment -223505966,
oder schalten Sie den Thread stumm
https://github.com/notifications/unsubscribe/AAeWNmFAR8k9Aszni-FDcGrkfK4dVEAeks5qH9GugaJpZM4GN-hv
.

@nwshane Bearbeiten .bash_profile in Ihrem bevorzugten Texteditor. Zum Beispiel:

nano ~/.bash_profile und fügen Sie die Zeilen hinzu, die Sie von docker-machine env default . Dann müssen Sie source diese Datei - Sie können dies tun, indem Sie entweder Ihre Terminalsitzung öffnen und schließen oder besser source ~/.bash_profile

Das sollte es tun.

@ shankiesan Großartig, danke! Das hat funktioniert. Ich habe mich verwirrt, als ich dachte, ich müsste docker-machine env default ausführen und die Variablen von dort abrufen - aber genau das macht eval "$(docker-machine env default)" .

$ wordpress-compose eval $(docker-machine env wordpress)
$ wordpress-compose docker ps
BEHÄLTER-ID BILDBEFEHL ERSTELLTE STATUS-PORTS-NAMEN
443c7386f4ef wordpress "/entrypoint.sh apach" vor 7 Minuten Up 7 Minuten 0.0.0.0:80->80/tcp wordpress_app
a790fdc3ca70 mysql "docker-entrypoint.sh" vor 14 Minuten Bis 14 Minuten 0.0.0.0:3360->3306/tcp wordpress_db
$ wordpress-compose docker-compose up
FEHLER: Es konnte keine Verbindung zum Docker-Daemon hergestellt werden. Möglicherweise müssen Sie docker-machine start default ausführen .`

$ wordpress-compose docker-compose --version
Docker-Compose Version 1.8.0-rc1, Build 9bf6bc6

$ wordpress-compose docker --version
Docker Version 1.12.0-rc2, Build 906eacd, experimentell

Hier sind meine Informationen, alles funktioniert gut, wenn ich docker run .......mysql..... und docker run ....link....wordpress und im Browser auf das Blog zugreifen kann. Wenn ich docker-compose ausprobieren möchte, funktioniert es nicht. Ich habe die Standardmaschine gelöscht. Jetzt wird WordPress verwendet.

Könnte mir helfen herauszufinden, was falsch ist?

Ich habe das gleiche Problem
aber ich benutze nicht Docker-Maschine nur Docker-Compose
irgendeine Idee ??

eval "$(docker-machine env default)" löst das Problem

Hatte das gleiche Problem mit einem bestimmten Dienst in Docker-Compose.

War ein Berechtigungsproblem ... Die Dateien, die auf Docker hochgeladen werden sollen, gehörten nicht dem aktuellen Benutzer.

Gleich wie @Rots hier = /

Fügen Sie den Befehl ein:
eval "$ (Docker-Maschine env default)"
auf Ihrem Mac-Terminal

"Error checking TLS connection: machine does not exist"
Jetzt bekomme ich dieses Problem, wenn ich versuche, Docker-Maschine env Standard zu verwenden, habe versucht, auch aus dem bash_profile zu laden, brauche Hilfe!

SSL-Fehler: EOF ist unter Verstoß gegen das Protokoll aufgetreten (_ssl.c: 777)

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen