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/
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
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