Docker Compose definiert und startet mehrere Docker-Container als einen gemeinsamen Stack. Statt einzelne Container per docker run zu starten, beschreibst du den gesamten Aufbau in einer docker-compose.yml-Datei — von Diensten über Netzwerke bis zu Volumes. Ein einziger Befehl bringt dann die komplette Anwendung hoch.

Grundlagen: Services, Netzwerke, Volumes

In der YAML-Datei definieren services die Container eines Stacks: Bilder, Ports, Umgebungsvariablen und Abhängigkeiten. networks verbinden die Dienste untereinander, volumes machen Daten dauerhaft. Compose ergänzt damit die klassische Docker-Befehlsreferenz um die Orchestrierungsebene.

Wichtige Compose-Befehle

docker compose up -d            # Stack starten (im Hintergrund)
docker compose down             # Stack stoppen (Container + Netzwerk)
docker compose ps               # Status aller Dienste
docker compose logs -f          # Logs aller Container live verfolgen
docker compose exec dienst cmd  # Befehl in laufendem Container ausführen
docker compose build            # Images neu bauen
docker compose pull             # Bilder aus der Registry ziehen
docker compose restart          # Dienste neu starten

Praxis-Workflow

Nach Änderungen an der Compose-Datei startest du mit docker compose up -d nur die betroffenen Dienste neu — Compose erkennt die Unterschiede selbst. Mit docker compose config lässt sich die vollständig aufgelöste Konfiguration prüfen. Für Tests hilft docker compose run --rm dienst kommando, das einen Einmal-Container ohne dauerhafte Änderungen startet.

Praxis-Tipps

  • Unterschiede zwischen bestehendem und neuem Stand zeigt docker compose diff.
  • Compose-Dateien heißen standardmäßig docker-compose.yml oder compose.yaml.
  • Mit mehreren Compose-Projekten im selben Verzeichnis die -p-Option nutzen, um Projekte getrennt zu halten.
  • Für produktive Stacks gehören Umgebungsvariablen in eine .env-Datei statt in die YAML.

Verwandte Grundlagen: Docker-Befehle, kubectl-Befehle und Kubernetes.