So aktualisieren Sie auf Docker Compose v2
Nach fast einem Jahr in der Beta ist Docker Compose v2 als stabile Version des Container-Management-Tools allgemein verfügbar. Die meisten Benutzer sollten heute in der Lage sein, den Wechsel vorzunehmen. In diesem Leitfaden zeigen wir Ihnen, wie Sie Ihr Upgrade vorbereiten und anwenden.
Zusammenfassung
Was ist neu in v2?
Docker Compose v2 bringt vertraute Compose-Funktionen in den Alltag docker
CLI. Anstatt mit anderen zu interagieren docker-compose
Binärdatei, die Sie jetzt verwenden docker compose
. Compose ist in Docker integriert.
Sie können die Befehle wie folgt ersetzen:
$ docker-compose up -d
Mit folgendem Aufruf:
$ docker komponieren -d
Compose v2 enthält auch einige neue Funktionen, die das Benutzererlebnis verbessern:
- Sie können verwenden
docker compose cp
um Dateien zwischen Ihrem Host und Containern zu kopieren. - Cloud-Anbieter sind gültige Ziele, die Ihnen erlauben
docker compose up
zum Bereitstellen von Containern auf Amazon ECS oder Microsoft ACI. - Serviceprofile werden vollständig unterstützt, was es einfach macht, Container selektiv in einen Stack aufzunehmen.
- Vereinfachte Projektverwaltung: Führen Sie Befehle aus, ohne sich im selben Verzeichnis wie Ihr zu befinden
docker-compose.yml
Ordner mitdocker compose --project-name my-project stop
. Es gibt auch eine neuedocker compose ls
Befehl, der alle Ihre Compose-Projekte auflistet. - Docker Compose ist jetzt wie Docker selbst in Go geschrieben, anstatt ein separates Python-Dienstprogramm zu sein. Dadurch kann Compose den Kerncode der Docker-CLI wiederverwenden und ein konsistenteres Verhalten erzielen.
Inkompatibilitäten mit v1
Compose v2 ist in fast allen Anwendungsfällen mit v1 kompatibel. Sie müssen Ihre nicht ändern docker-compose.yml
Dateien oder lernen Sie neue Befehle, mit Ausnahme des Änderns docker-compose
à docker compose
. Wenn Sie Ihre eigenen Werkzeuge in der Nähe haben docker-compose
Befehl, können Sie ihn in Anruf ändern docker compose
Stattdessen.
Während die meisten Migrationen unkompliziert sein sollten, führt Compose v2 einige wichtige Änderungen ein, die sich auf bestimmte Anwendungsfälle auswirken können:
- Container werden jetzt mit Bindestrichen anstelle von Unterstrichen im Namen erstellt. Es bedeutet einen Dienst namens
db
in derapp
Projekt erstellt nun einen Container namensapp-db
stattapp_db
. Dies könnte Skripte beschädigen, die erwarten, dass das alte Containernamensformat verwendet wird. Die Änderung kann derzeit durch Einschließen der deaktiviert werden--compatibility
Flagge mitdocker compose
Aufträge. docker compose build
standardmäßig mit BuildKit erstellt. BuildKit ist das moderne Imaging-System von Docker, mit dem Builds viel schneller erstellt werden können. BuildKit ist das empfohlene Build-System, aber es gibt immer noch einige Inkompatibilitäten mit dem Legacy-Build-Mechanismus, die unter bestimmten Umständen Probleme verursachen können. Sie können BuildKit deaktivieren, indem Sie dieDOCKER_BUILDKIT=0
Umgebungsvariable vor dem Ausführendocker compose
Aufträge.- Einige veraltete Befehlsflags wurden entfernt.
docker compose rm --all
wird nicht unterstützt und diedocker compose scale
Der Befehl wird zugunsten von weggelassendocker compose up --scale
. Sie müssen alle Skripts ändern, die auf dem basierendocker-compose
Versionen dieser Befehle.
Upgrade unter Linux
Obwohl sich Compose jetzt in die Docker-CLI integriert, ist es in Docker Engine nicht standardmäßig aktiviert. Sie können Compose v2 installieren, indem Sie es als Docker-CLI-Plugin hinzufügen. Sie müssen über die Docker-Version v20.10.13 oder höher verfügen.
Aktualisieren Sie Ihre Paket-Repositorys und installieren Sie sie docker-compose-plugin
:
$ sudo apt update $ sudo apt install docker-compose-plugin
Überprüfen Sie, ob die Installation erfolgreich war, indem Sie die Docker Compose-Version abrufen:
$ Docker Compose-Version Docker Compose-Version v2.3.3
Sie können jetzt Docker Compose v1 entfernen, es sei denn, Sie möchten es aus Gründen der Kompatibilität mit Legacy-Skripts beibehalten. Beide docker-compose
(v1) und docker compose
(v2) können bei Bedarf nebeneinander existieren. Wenn Sie v1 entfernen, wird es normalerweise als einzelne Binärdatei gefunden /usr/local/bin/docker-compose
:
$ sudo rm /usr/local/bin/docker-compose
Sie können jetzt einen Shell-Alias für die Umleitung konfigurieren docker-compose
à docker compose
. Auf diese Weise können Sie mit Ihrer neuen v1-Installation weiterhin Skripts verwenden, die Compose v2 erwarten.
$ echo 'alias docker-compose="docker compose"' >> ~/.bashrc $ source ~/.bashrc $ docker-compose-Version Docker Compose-Version v2.3.3
Sie können jetzt mit der Verwaltung Ihrer Container mit Compose v2 beginnen.
Upgrade mit Docker Desktop für Windows und Mac
Compose v2 ist in den Docker Desktop-Versionen 3.4 und höher enthalten. v2 wurde zur Standardversion von Compose in v4.4.2; Wenn Sie das Upgrade bereits durchgeführt haben, können Sie es verwenden docker compose
heute.
v4.4.2 auch Aliase docker-compose
à docker compose
automatisch. Compose v1 ist standardmäßig nicht zugänglich. Sie können dieses Aliasing deaktivieren, indem Sie die ausführen docker-compose disable-v2
Befehl oder durch Deaktivieren des Kontrollkästchens „Use Docker Compose v2“ auf der Einstellungsseite von Docker Desktop. Das docker-compose
Die Steuerung kehrt dann zur Verwendung von Compose v1 zurück.
Und dann?
Compose v1 wird für die nächsten sechs Monate weiterhin für Sicherheitsprobleme und Fehlerbehebungen mit „hohem Schweregrad“ unterstützt. Diese Unterstützung endet im Oktober 2022. v1 gilt dann als End-of-Life, daher sollte seine Verwendung vermieden werden. Zu diesem Zeitpunkt wird Docker Desktop aktualisiert seulement Unterstützung v2. Sie müssen verwenden docker compose
als docker-compose
Aliasing wird entfernt. Sie müssen auf einer älteren Version bleiben, wenn Sie noch v1 benötigen.
Sie können v1 auf unbestimmte Zeit weiter verwenden, indem Sie es als eigenständige Binärdatei installieren. Sie finden sie für Windows, Mac und Linux auf der GitHub-Release-Seite des Projekts. Obwohl diese Binärdateien weiterhin unbegrenzt funktionieren, sollten die meisten Projekte darauf abzielen, in naher Zukunft auf v2 zu aktualisieren. Dadurch erhalten Sie Zugriff auf alle Fehlerbehebungen, Sicherheitsupdates und neuen Funktionen in modernen Versionen von Compose v2.
Zusammenfassung
Docker Compose v2 ist jetzt die stabile Version von Docker Compose. Docker Desktop-Benutzer wurden automatisch aktualisiert. Linux-Installationen der Docker Engine werden von der neuen unterstützt docker-compose-plugin
CLI-Plugin.
Der Support für Compose v1 endet in weniger als sechs Monaten. Sie müssen daher überprüfen, ob Ihre Skripte kompatibel sind, und dann v2 in den kommenden Wochen übernehmen. Sie können Compose in verwenden docker
CLI und profitieren Sie von v2-Funktionen wie Dienstprofilen und docker compose ls
bestellt.