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.
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:
Docker Quickstart Terminal
docker-machine restart default
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)
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 miteval "$(docker-machine env default)"