Docker-Container auf mehreren Hosts mit Docker-Compose

1103
Alex Balashov

Ich benutze Docker-Compose, um einen kleinen Harem von Containern zur Unterstützung einer Anwendung auszuführen. Die Verwendung des internen DNS-Resolvers von Docker (z. B. dbAuflösung in den Datenbank-Backend-Container) ist hierfür der Schlüssel. Ich verwende ein privates überbrücktes Netzwerk, das mit erstellt wurde docker network.

Ich frage mich, ob es einen einfachen und unkomplizierten Weg ohne die Bürokratie von Kubernetes gibt und dass der DNS-Erkennungsmechanismus genutzt werden kann, während die Container auf mehrere physische Server verteilt werden. Eine Möglichkeit besteht darin, einfach eine separate Docker-Installation und ein privates Netzwerk auf einem anderen Server zu erstellen und diese Container beim Start auf meinem PowerDNS-Server DNS-Einträge für sich selbst aktualisieren zu lassen. Dafür gibt es einen Mechanismus. Ich ziehe es jedoch vor, die interne DNS-Erkennung von Docker zu nutzen.

Alle Hinweise wären dankbar!

0

2 Antworten auf die Frage

0
Martin

Ich würde vorschlagen, dass Sie in Docker Swarm nachschauen, meiner Erfahrung nach ist es einfacher einzurichten. Es sollte sich auch gut von Ihrem Strom erstrecken docker-compose.yml.

Sie sollten bereits über einen Schwarm verfügen, wenn Sie eine aktuelle Docker-Engine ausführen. Sie müssen sie nur durch Ausführen aktivieren docker swarm init. Sie können es bei play-with-docker ausprobieren .

Vielleicht möchten Sie sich Bret Fischers Github für ein paar Beispiele ansehen . Dieses Repo ist das Begleitmaterial für den Udemy-Kurs des Autors, der imo auch einen guten Überblick gibt.

0
Ben Njeri

Ja, das können Sie mit Docker Swarm erreichen. Docker-Schwarm bietet eine Lösung, um Einschränkungen bei der Docker-Erstellung mit ansprechenden Funktionen wie den folgenden zu erreichen:

  • Es verwendet die Docker Engine-CLI, um einen Schwarm Docker Engines zu erstellen, auf dem Sie Anwendungsdienste ohne zusätzliche Orchestrierungswerkzeuge bereitstellen können. -Swarm ist ein Cluster von Docker Engines.
  • Automatische Skalierung des Swarm-Managers zum Erreichen des gewünschten Zustands - einfaches Vergrößern und Verkleinern
  • Serviceerkennung: Swarm-Manager-Knoten weisen jedem Service im Swarm einen eindeutigen DNS-Namen zu und Lastenausgleich für ausgeführte Container. Sie können jeden im Swarm laufenden Container über einen im Swarm eingebetteten DNS-Server abfragen.
  • Aktualisierungen und Sicherheit - Jeder Knoten im Schwarm erzwingt gegenseitige TLS-Authentifizierung und -Verschlüsselung, um die Kommunikation zwischen ihm und allen anderen Knoten zu sichern.

Wie Sie sehen, hat es HA-Unterstützung für mehrere Knoten und Master-Knoten. Um mit Docker Swarm zu beginnen, lesen Sie die Docker Swarm 101- Anleitung. Wenn Sie mit Docker Swarm vertraut sind, lesen Sie den Leitfaden Erste Schritte mit Kubernetes, um in Kubernetes einzutauchen