Docker Compose v2 - Plugin vs standalone und was heute gilt

Docker Compose v2 - Plugin vs standalone und was heute gilt

Wer länger mit Docker arbeitet, kennt docker-compose — mit Bindestrich. Neuere Installationen haben docker compose — ohne Bindestrich. Das ist kein Zufall, sondern ein Versionssprung mit Konsequenzen.

Die Geschichte

Docker Compose v1 war ein eigenständiges Python-Programm: docker-compose. Es wurde separat installiert, hatte eigene Release-Zyklen und war nicht in Docker Engine integriert. Lange Zeit war es der Standard.

Docker Compose v2 wurde in Go neu geschrieben und als Plugin direkt in die Docker CLI integriert. Der Befehl ist seither docker compose (Leerzeichen statt Bindestrich). V2 ist seit Docker Engine 20.10 verfügbar und seit 2022 der offizielle Standard. V1 ist deprecated und erhält keine Sicherheitsupdates mehr.

Version prüfen

# Plugin (v2) — als Teil von docker
docker compose version
# Docker Compose version v2.24.0

# Standalone (v1) — falls noch installiert
docker-compose --version
# docker-compose version 1.29.2

Migration: was sich ändert

Der einzige Unterschied im Alltag ist der Befehl selbst. Die docker-compose.yml bleibt identisch — kein Umbau der Konfiguration nötig.

# Alt (v1)
docker-compose up -d
docker-compose ps
docker-compose logs -f
docker-compose down

# Neu (v2)
docker compose up -d
docker compose ps
docker compose logs -f
docker compose down

Wer Skripte oder CI-Pipelines auf v1 hat, ersetzt einfach alle Vorkommen von docker-compose durch docker compose.

Installation als Plugin

Das Plugin wird mit Docker Engine mitgeliefert, wenn man über das offizielle apt-Repository installiert:

sudo apt-get install docker-compose-plugin

Auf bestehenden Installationen kann man es nachinstallieren:

sudo apt-get update && sudo apt-get install docker-compose-plugin

Warum v1 nicht mehr verwenden

  • Kein Support mehr, keine Bugfixes, keine Sicherheitsupdates
  • Python-Abhängigkeiten auf dem Host erforderlich
  • Langsamere Ausführung
  • Nicht in docker integriert — kein gemeinsames CLI-Erlebnis

V1 war für seine Zeit gut. Heute gibt es keinen Grund mehr, es zu nutzen.