wake-up-neo.com

Welche Vorteile hat Docker Compose gegenüber Docker Swarm und Docker Stack?

Nach dem, was ich gelesen habe, ist Docker-Compose ein Tool zum Erstellen mehrerer Container auf einem einzelnen Host, während Docker Swarm ein Tool ist, das mit Hilfe von Docker Stack genau dasselbe aber mit mehr Kontrolle und auf mehreren Hosts ausführen kann. Ich habe das Tutorial durchgesehen und bin auch auf diesen Thread gestoßen:

docker-compose.yml vs docker-stack.yml welchen Unterschied?

Und ich komme zu dem Schluss, dass es keinen Grund gibt, Docker-Compose jemals zu verwenden, wenn Sie Docker Swarm mit Docker Stack verwenden können. Sie können sogar dieselbe docker-compose.yml verwenden.

Es scheint, dass Docker-Compose vor dem Schwarm und Stapel kam, und vielleicht macht die neue Lösung von Schwarm + Stapel das Komponieren überflüssig, aber es bleibt noch aus alten Gründen. Ist das richtig gedacht? Wenn nicht, welche Vorteile hat Docker-Compose gegenüber Docker Swarm und Docker Stack in Bezug auf die Erstellung einer Entwicklungs- oder Produktionsumgebung?

9
Kyle Truong

Es scheint, dass Docker-Compose vor dem Schwarm und Stapel kam, und vielleicht macht die neue Lösung von Schwarm + Stapel das Komponieren überflüssig, aber es bleibt noch aus alten Gründen. Ist das richtig gedacht?

Kurz gesagt ja. Compose kam vor allem Swarm-Zeug (es entstand als Hilfsprogramm eines Drittanbieters namens fig). Erschwerend kommt hinzu, dass es sogar zwei verschiedene Schwärme gibt, den alten Schwarm (der ein separates Tool war) und den Schwarmmodus (der heutzutage in die docker-Binärdatei integriert ist).

Es scheint sich zu Diensten und Bereitstellungskonzepten zu entwickeln, die in Docker integriert werden. Aber ich würde vermuten, dass Docker Compose und das Bereitstellungsmaterial für den Swarm-Modus für eine Weile nebeneinander existieren werden.

Es ist auch von Vorteil, zu wissen, dass Docker Compose als Bibliothek namens libcompose ( https://github.com/docker/libcompose ) fungiert, die andere Dienstprogramme von Drittanbietern verwenden, um das docker-compose.yml-Dateiformat für die Bereitstellung zu unterstützen ( siehe Rancher und rancher-compose als Beispiel). Ich würde mir vorstellen, dass sie sich bemühen würden, die Unterstützung für libcompose fortzusetzen.

Ich bin nicht sicher, ob das Docker Swarm-Bereitstellungsmaterial tatsächlich libcompose verwendet. Bei meinen flüchtigen Suchen scheint es, dass der Schwarmmodus nicht libcompose implementiert und sein eigenes Ding macht. Ich bin mir nicht sicher, wie dies mit der Zukunft von Docker Compose und libcompose zusammenhängt. Interpretieren Sie, wie Sie es für richtig halten ...

8
Andy Shinn

Aus dem, was ich gefunden habe: Was ist der Unterschied zwischen Docker Swarm, Docker Compose und Docker Networks?

Docker Compose ist ein clientseitiges Tool, mit dem Sie einen Anwendungsstapel mit mehreren Komponenten ausführen können.

In unserem Szenario würden Sie also Docker Compose verwenden, um - # 2 * ¹ zu erreichen. Sie definieren eine Spezifikationsdatei, in der Sie definieren, wie ein Container für jede Ihrer Komponenten erstellt werden soll - db, app und web tier. Sie können auch festlegen, wie diese miteinander interagieren sollen. Wie viele Instanzen von jedem und vielen anderen Dingen.

* ¹ Jetzt müssen Sie einen Anwendungsstapel mit Web-, App- und DB-Schicht starten.


Compose ist ein Tool zum Definieren und Ausführen von Docker-Anwendungen für mehrere Container.

Docker Swarm ist eine serverseitige Funktion, mit der Sie:

  • Ein Schwarm ist ein Cluster von Docker-Knoten (Maschinen), die als zugrunde liegende Ressourcen zum Starten mehrerer Container fungieren. Man kann Dienste über den Schwarm hinweg orchestrieren und bereitstellen.

    Sie können mehrere Knoten zu einem Cluster zusammenfassen und dann den Befehl „docker run“ an diesen Cluster senden (tatsächlich an den Swarm-Manager-Knoten). Swarm übernimmt die Planung (das Starten) dieses Containers auf einem der Knoten.

  • Container über alle Knoten hinweg miteinander kommunizieren lassen

Die offizielle Dokumentation finden Sie unter: Übersicht über den Schwarmmodus & Docker Compose

3
ob1