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.ymlodercompose.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.