2016-07-23 31 views
4

Ich habe versucht, dieses Tutorial auf einige echte Linux-Hosts oder lokalen VMs zu folgen https://docs.docker.com/engine/swarm/swarm-tutorial/einen Schwarm-Cluster mit Docker für Mac Erstellen

Statt Docker für Mac ein paar MacBooks laufen vernetzen läuft ich will.

Nach dem Tutorial habe ich Docker für Mac auf zwei Rechnern installiert. In einem Terminal auf der ersten Maschine arbeitet 'docker swarm create' und erstellt einen ca-Hash und eine ID.

Ich fahre mit der zweiten Maschine fort und führe den Join-Befehl aus, indem ich ihn von einem auf den anderen lege.

Die zweite Maschine kann keine Verbindung herstellen. Dies wird erwartet, da die IP-Adresse, die in der Ausgabe angezeigt wird, eindeutig die IP-Adresse innerhalb der virtuellen Maschine und keine Adresse auf meinem Computer ist. Ich habe versucht, von dem Tutorial abzuweichen, indem ich die Adresse des lokalen Netzwerkadapters spezifizierte, aber es sagt, dass es an diese Adresse nicht binden kann. Ich weiß, dass alle Häfen geöffnet sind und die Maschine sich verbinden kann.

So scheint es mir, dass ich das Ziel des Tutorials grundlegend missverstand oder wie man die zwei Macs einrichtet, damit sie sich verständigen können. Durch googeln für Lösungen scheint es gibt mehrere Möglichkeiten für was ich tun muss:

Führen Sie einen verteilten KV-Speicher, um die Schwarm-Netzwerk-Koordinate zu helfen (aber ist dies nicht der Punkt der neuen Orchestrierung?) Einrichten einer Port-Tunnel auf jedem Rechner vom Netzwerkadapter zum Alpine Linux Docker-Dämon Aufgeben und nur meinen Cluster lokal testen

Update: Nach ein paar mehr Forschung scheint es, ich sollte ein Overlay-Netzwerk mit diesem Handbuch erstellen. Aber diese Anleitung verwendet Docker-Maschine. Soweit ich verstehe, sollte/kann ich Docker-Maschine nicht zusammen mit Docker für Mac verwenden, oder ist das nicht korrekt?

https://docs.docker.com/engine/userguide/networking/get-started-overlay/

Antwort

0

Ab Docker 1,12 ist dies nicht möglich. Es kann in einer späteren Version bearbeitet werden.

0

Aber dieses Handbuch verwendet Docker-Maschine.

Das ist nicht ein Problem sein sollte: jedes Mal, wenn Sie sehen in the tutorial

Punkt Ihrer Umgebung zum Swarm-Master.

$ eval $(docker-machine env --swarm mhs-demo0) 

Es bedeutet einfach, Sie sollen den nächsten Docker Befehl auf dem Schwarm Master (einer Ihrer mac)

Wechseln Sie zu jedem Swarm Mittel wiederum auszuführen und die Netzwerkliste.

$ eval $(docker-machine env mhs-demo0) 

Ebenso schalten Sie auf dem anderen Mac andere Docker Befehle auszuführen.

+0

Dies ist der Hauptpunkt der Verwirrung für mich. Bei der Verwendung von Docker für Mac weiß docker-machine nichts über den Docker-Host, der auf dem Hypervisor ausgeführt wird. So gibt "docker-machine env" einen Fehler zurück, weil der Host nicht läuft. – justinhj

+0

Mein Punkt war: Jedes Mal, wenn Sie docker-machine sehen, verwenden Sie nicht docker-machine, sondern direkt docker Befehle auf der rechten (physischen) Maschine – VonC

3

Sie müssen einen Port-Tunnel einrichten, um den Docker-Dämon-Port innerhalb der VM zur Netzwerkschnittstelle des Hosts zu befördern. Um zu prüfen, ob Sie den Daemon eines anderen Rechners erreichen können, verwenden Sie https://otherMachineIp:DaemonPort/v1/_ping. Wenn dies gelingt, können Sie den anderen Daemon erreichen, um einen Schwarm einzurichten.

BTW solange Sie auf der gleichen Docker-Version sind, sollte die Verwendung von Docker für Mac und Docker-Maschine zusammen keine Probleme verursachen.