Ich richte Docker auf meinem lokalen Mac OS X-Computer ein und habe einige Probleme, damit es funktioniert. Ich habe die Installationsanweisungen unter https://docs.docker.com/installation/mac/ befolgt . Alles bis zur Installation des boot2docker-Tools scheint reibungslos zu verlaufen, aber nachdem die VM ausgeführt wurde, scheinen Docker-Befehle nichts zu bewirken. Z.B,
$ docker run ubuntu echo hello world
2014/06/17 08:20:54 Post http://localhost:4243/v1.12/containers/create: EOF
Jeder Befehl endet mit EOF und scheint nicht das zu tun, was er eigentlich tun sollte. Hier ist ein anderes:
$ docker ps
2014/06/17 08:25:10 Get http://localhost:4243/v1.12/containers/json: EOF
Die vom boot2docker-Tool erstellte VM wird ebenfalls ausgeführt:
$ boot2docker status
[2014-06-17 08:26:24] boot2docker-vm is running.
Ich habe das Gefühl, dass etwas nicht richtig eingerichtet ist, aber ich habe die Anweisungen Zeile für Zeile befolgt und kann nicht sehen, wo etwas schief geht.
Jede Hilfe wird sehr geschätzt, danke!
Update 1
boot2docker Version: 1.0.0 oder 0.9.1 (nicht sicher - es gibt kein Versionsflag AFAICT)
$ boot2docker ip
Usage /usr/local/bin/boot2docker {init|start|up|save|pause|stop|restart|status|info|delete|ssh|download}
Auf der boot2docker-Instanz:
$ sudo netstat -ntpl | grep docker
tcp 0 0 :::2375 :::* LISTEN 743/docker
$ docker --version
Docker version 1.0.0, build 63fe64c
Update 2
Ich habe gerade boot2docker neu installiert und jetzt läuft definitiv 1.0.0.
$ boot2docker version
Client version: v1.0.0
Git commit: 2fef7b2
Ich habe den Befehl auch in der Dokumentation erneut ausgeführt (was im Widerspruch zu den Anweisungen des Befehls steht, DOCKER_HOST in der Befehlszeile festzulegen, siehe unten):
$ boot2docker up
2014/06/17 18:25:43 Waiting for VM to be started...
.............................
2014/06/17 18:26:41 Started.
2014/06/17 18:26:41 Auto detection of the VM's IP address.
2014/06/17 18:26:41 To connect the Docker client to the Docker daemon, please set:
2014/06/17 18:26:41 export DOCKER_HOST=tcp://:4243
Aber ich sehe immer noch die ursprüngliche Ausgabe.
$ docker run ubuntu echo hello world
2014/06/17 18:28:29 Post http://127.0.0.1:4243/v1.12/containers/create: EOF
Anschließend führe ich den in der Dokumentation genannten Befehl erneut aus:
$ export DOCKER_HOST=tcp://$(boot2docker ip 2>/dev/null):2375
Und jetzt sehen Sie dies:
$ docker run ubuntu echo hello world
2014/06/17 18:31:39 Cannot connect to the Docker daemon. Is 'docker -d' running on this host?
Ich sollte erwähnen, dass der Versuch, docker -d
unter OS X zu laufen , diese Meldung auslöst:
$ docker -d
2014/06/17 18:34:04 The Docker daemon is only supported on linux
Welches ist nicht viel Hilfe ...
docker -version
Ausgabe bekommen ? Ich vermute, dass dies ein Problem bei der VM-Portweiterleitung mit dem neuesten boot2docker ist, der auf Docker 1.0 aktualisiert wurde und einen neuen Port verwendet.Antworten:
Ein paar Dinge zu überprüfen:
Aktualisierte Version von boot2docker
Überprüfen Sie, ob Ihr boot2docker auf dem neuesten Stand ist. Wenn Sie über eine Anwendung wie Homebrew installiert haben, wird möglicherweise eine ältere Version ausgeführt. Überprüfen Sie die offiziellen Versionen unter https://github.com/boot2docker/osx-installer/releases . Stellen Sie sicher, dass Sie es ausführen
boot2docker delete
und dannboot2docker init
nach dem Upgrade.Docker-Client aktualisiert
Es ist wahrscheinlich eine gute Idee, einen Docker-Client auszuführen, der der Version des Servers entspricht, der in boot2docker ausgeführt wird. Wenn Sie Docker 1.0 in boot2docker ausführen, stellen Sie sicher, dass Sie den 1.0-Client von https://github.com/boot2docker/osx-installer/releases haben .
Exportieren Sie den richtigen Port
Der Port in Ihren Befehlen ist möglicherweise nicht korrekt. Haben Sie daran gedacht,
export DOCKER_HOST=tcp://$(boot2docker ip 2>/dev/null):2375
wie in der Dokumentation angegeben zu laufen ? Port2375
ist die neue Standardeinstellung für Docker 1.0 (sowohl in boot2docker 0.9.1 als auch in 1.0.0).Richtigen Port weiterleiten
Nach dem Aktualisieren des
DOCKER_HOST
für den Client kann ein Problem mit boot2docker 0.9.1 auftreten, bei dem der falsche Port für Docker-TCP-Verbindungen verwendet wurde. Zu überprüfende Schritte:boot2docker ssh
(Kennwort isttcuser
) bei der boot2docker-VM an .sudo netstat -ntpl | grep docker
(wahrscheinlich2375
).Port Forwarding
Schaltfläche.2375
) mit dem in boot2docker lauschenden Port übereinstimmen .quelle
Andy hat mich zu 99% dorthin gebracht. Ich markiere seine Antwort als akzeptierte Antwort, aber ich werde hier schreiben, was mein Problem gelöst hat. Nach der Installation der richtigen Version (1.0.0) von boot2docker erhielt ich immer noch eine falsche Ausgabe von Docker-Befehlen.
Ich habe dann VirtualBox geöffnet und die Ports gelesen, und siehe da, die Ports waren falsch. Das Umschalten auf die richtigen Werte hat das Problem jedoch nicht behoben.
Ich habe beschlossen, die VM zurückzusetzen, da der alte boot2docker sie wahrscheinlich falsch eingerichtet hat. Die folgenden Befehle haben das Problem behoben.
quelle
boot2docker
ist ein neues CLI-Verbshellinit
enthalten, sodass Sie dies stattdessen tun können, um die Umgebung festzulegen. var.$DOCKER_HOST
.eval $(boot2docker shellinit)
.