Hier lernst du Docker Compose praktisch kennen und startest deine erste eigene compose.yml. Docker Compose ist der Punkt, an dem Docker für mich alltagstauglich wird. Ein Dienst steht nicht mehr als langer Befehl irgendwo in der Historie, sondern in einer Datei im Projektordner.
Diese Datei heißt meistens compose.yml. Sie beschreibt, welches Image gestartet wird, welche Ports nach außen gehen und welche Daten erhalten bleiben sollen.
Eine minimale compose.yml
Lege einen neuen Ordner an und erstelle darin diese Datei:
services:
web:
image: nginx:alpine
ports:
- "8080:80"Der Servicename ist web. Das Image ist nginx:alpine. Die Portzeile bedeutet: Auf deinem Rechner ist Port 8080 erreichbar, im Container läuft Nginx auf Port 80.
Starten, prüfen, stoppen
Im Ordner mit der compose.yml reichen diese Befehle:
docker compose up -d
docker compose ps
docker compose logs -f web
docker compose downup -d startet im Hintergrund. ps zeigt den Zustand. logs zeigt Ausgaben. down stoppt und entfernt den Container, aber nicht automatisch deine benannten Volumes.
Mein Arbeitsstil
Wenn ich ein Setup öfter brauche, bekommt es eine Compose-Datei. Dann kann ich es später auf Linux, Mac oder Windows wieder starten, ohne den ursprünglichen Befehl suchen zu müssen.
Häufige Fragen
Was ist eine compose.yml?
Die compose.yml beschreibt deine Dienste, Images, Ports, Volumes und Umgebungsvariablen in einer lesbaren Datei.
Warum ist Compose besser als ein langer docker run Befehl?
Compose ist leichter zu wiederholen, zu sichern und später auf einen anderen Rechner zu übertragen.
Muss die Datei docker-compose.yml heißen?
Nein. compose.yml ist heute üblich und kurz. Docker Compose erkennt aber auch docker-compose.yml.
Aus eigener Praxis
In meinen eigenen Setups lege ich für jeden Dienst einen kleinen Projektordner mit compose.yml und .env an. Dadurch kann ich später noch nachvollziehen, welcher Port, welches Volume und welcher Dienstname wirklich verwendet wurde.