Was ist neu in Docker Compose v2?

0
210

Docker Compose ist ein äußerst beliebtes Tool für die Arbeit mit Containern. Während die gewöhnliche Docker-CLI mit jeweils einem Container interagiert, können Sie mit docker-compose mehrere Container zusammenfassen.

Compose existiert derzeit als eigenständiges Projekt, das unabhängig von Docker verteilt wird. Wenn Sie Compose verwenden möchten, müssen Sie es separat herunterladen. Viele Benutzer greifen am Ende direkt auf die Binärdatei zurück, da OS-Paketmanager oft hinterherhinken, selbst wenn sie die neueste Docker-Version anbieten.

Docker Compose v2 wurde auf der DockerCon 2021 angekündigt. Es verspricht große Änderungen an der Compose-Erfahrung indem Sie es in die Docker-CLI integrieren. v2 bietet außerdem neue Komfortfunktionen, die Ihnen die Verwaltung Ihrer Container-Stacks erleichtern.

Das neue “Docker Compose” Befehl

Docker Compose v2 bringt die Compose-Funktionalität in Docker selbst. Sie können Compose überall dort verwenden, wo die neueste Docker-CLI installiert ist, ohne dass zusätzliche Schritte erforderlich sind. Darunter verwendet Docker weiterhin die Funktionen des Compose-Projekts.

Vorhandene docker-compose-Befehle sollten direkt ihren neuen Docker-Compose-Gegenstücken zugeordnet werden. In den meisten Fällen können Sie den Bindestrich ohne weitere Änderungen löschen. docker compose unterstützt fast alle Unterbefehle und Flags von Compose v1, obwohl eine Minderheit nicht implementiert wird.

Werbung

Compose v2 unterstützt weiterhin den Aufruf über die docker-compose-Binärdatei. Vorhandene Workflow-Skripts sollten weiterhin funktionieren, auch wenn Sie sie nicht sofort aktualisieren, um Docker Compose zu verwenden. Langfristig werden wahrscheinlich die meisten Autoren stattdessen auf die neue Form umsteigen.

Experimentieren mit Docker Compose v2< /h2>

Compose v2 befindet sich derzeit in der Beta-Phase. Obwohl es sich noch in der Entwicklung befindet, wird die neue Binärdatei bereits mit Docker Desktop für Windows und Mac ausgeliefert. Desktop v3.4 hat Unterstützung für die Docker Compose-Befehle hinzugefügt, sodass Sie sie wahrscheinlich bereits heute verwenden können. Die Linux-Pakete werden später im Jahr aktualisiert; In der Zwischenzeit ist ein manuelles Installationsskript verfügbar.

Der Befehl docker-compose kann derzeit v1 oder v2 aufrufen, standardmäßig ist v1. Die Option wird für eine Untergruppe von Benutzern automatisch aktiviert; es wird schließlich v2 für alle starten.

Sie können docker-compose manuell zwischen v1 und v2 wechseln, indem Sie docker-compose disable-v2 oder docker-compose enable-v2 ausführen. Auf diese Weise können Sie die Kompatibilität mit allen vorhandenen Compose-Dateien aufrechterhalten, die nicht mit v2. Docker Compose-Befehle verwenden immer v2.

Spezifikationsänderungen

Die Integration der Compose-Funktionalität in die Docker-CLI erforderte Änderungen an der Compose-Spezifikation. Dies unterscheidet nun zwischen Befehlsimplementierungen und dem docker-compose.yml YAML-Format.

Der überarbeitete Ansatz bietet neue Möglichkeiten, zusätzliche Funktionen zu integrieren. Experimentelle Implementierungen können schneller bereitgestellt werden und das Compose-Team ist besser gerüstet, um Community-Vorschläge hinzuzufügen. Die CLI ist stärker vom YAML-Dateiformat entkoppelt, sodass alternative Implementierungen (wie Docker Compose) möglich sind.

Werbung

Über die CLI hinaus ermöglicht die Existenz der Composer-Spezifikation Cloud-Anbietern, auch Compose-Funktionen zu implementieren. Sie können Docker Compose jetzt mit einem Cloud-basierten Docker-Kontext ausführen, um Ihre App in der Produktion zu starten. Docker bietet integrierte Unterstützung für Amazon ECS- und Microsoft ACI-Umgebungen.

Intern verwendet Compose v2 standardmäßig Buildkit für schnellere Builds. Die Gesamtleistung sollte schneller sein, da mehr Aufgaben parallel laufen, was die Verarbeitungszeiten verkürzt.

Neue Funktionen in v2

Der Wechsel von Docker-Compose zu Docker Compose ist nicht die einzige Änderung in v2. Es gibt auch neue Funktionen, die sich auf die Interaktion mit Ihren Container-Stacks auswirken.

Eine Einschränkung von Compose v1 ist die Herangehensweise an Projektnamen. Wenn Sie docker-compose up -d ausführen, stellt Compose den Projektnamen dem Dienstnamen jedes Containers voran. Dadurch wird sichergestellt, dass alle Container gruppiert sind.

v1 leitet den Projektnamen aus dem Namen Ihres Arbeitsverzeichnisses ab. Sie können manuell einen anderen Namen wählen, indem Sie die Umgebungsvariable COMPOSE_PROJECT_NAME festlegen.

v2 vereinfacht dies, indem ein CLI-Flag hinzugefügt wird, um den Projektnamen festzulegen. Fügen Sie –project-name oder -p hinzu, um den Namen des Arbeitsverzeichnisses zu ignorieren, ohne die Umgebung zu ändern. Durch das manuelle Festlegen des Projektnamens können Sie Container aus mehreren Arbeitsverzeichnissen zu einem Stapel kombinieren oder mehrere Instanzen eines Containerstapels starten.

Werbung

Mit einer weiteren neuen Funktion von v2 können Sie alle Compose-Stacks auf Ihrem System auflisten. Der Befehl docker compose ls bietet eine Tabelle mit Projektnamen und deren Status (wird ausgeführt oder gestoppt). Dies ergänzt den Befehl docker compose ps, der den Status von Containern in einem Stapel anzeigt.

Compose v2 fügt auch Unterstützung für docker compose cp hinzu. Dieser Befehl funktioniert ähnlich wie docker cp und ermöglicht das Kopieren von Dateien in und aus Ihren Containern:

docker cp my-container local-file.txt /path/to/container/file.txt

Zusammenfassung

Docker Compose v2 ist ein umfangreiches Upgrade, das dem Container-Management-Tool mehr Komfort bietet. Durch die Integration von Compose in die Haupt-CLI von Docker ist es überall verfügbar, wo Docker ist. Dies macht es leichter zugänglich und erleichtert den Einstieg.

Compose v2 enthält auch einige zusätzliche Dienstprogrammbefehle, um die Arbeit mit verschiedenen Stapeln und Containern zu erleichtern. Sie erhalten einen verbesserten Einblick in das, was auf Ihrem System ausgeführt wird. Während es sich zum Zeitpunkt des Schreibens noch in der Beta-Phase befindet, können Windows- und Mac-Benutzer v2 heute verwenden, während Linux-Benutzer den neuesten Build von GitHub herunterladen können.