Wie du Docker Compose nutzt

Docker Compose ist ein Tool, das die Verwaltung und Ausführung von Anwendungen mit mehreren Containern in Docker einfacher macht. Es ermöglicht dir, alle Services, die deine Anwendung benötigt, in einer einzigen YAML-Datei zu definieren und dann mit nur einem Befehl zu starten. Lass mich dir zeigen, wie du Docker Compose nutzen kannst und welche wichtigen Features es bietet.
Erste Schritte mit Docker Compose
Um Docker Compose zu nutzen, brauchst du eine docker-compose.yml
oder compose.yml
Datei. Diese Datei listet alle Services (Container) auf, die deine Anwendung benötigt. Wenn du beispielsweise eine Webanwendung baust, könntest du Services für einen Webserver, eine Datenbank und einen Cache haben.
Hier ist, wie du Docker Compose zur Verwaltung deiner Anwendung verwenden kannst:
Grundlegende Nutzung
Um deine Anwendung zu starten, navigiere zum Verzeichnis mit deiner Compose-Datei und führe aus:
docker compose up
Dieser Befehl liest die docker-compose.yml
oder compose.yml
Datei in deinem aktuellen Verzeichnis und startet alle darin definierten Services.
Verschiedene Compose-Dateien verwenden
Manchmal möchtest du vielleicht unterschiedliche Compose-Dateien für verschiedene Umgebungen oder Konfigurationen verwenden. Du kannst mit dem -f
Flag angeben, welche Datei verwendet werden soll. Wenn du beispielsweise eine Datei namens docker-compose.prod.yml
für deine Production-Umgebung hast, kannst du sie so starten:
docker compose -f docker-compose.prod.yml up
Du kannst auch mehrere Compose-Dateien nutzen, um Konfigurationen zu kombinieren. Wenn du eine Basiskonfiguration und eine Override-Datei hast, kannst du sie so kombinieren:
docker compose -f docker-compose.yml -f docker-compose.override.yml up
In diesem Fall überschreiben oder ergänzen die Einstellungen in docker-compose.override.yml
diejenigen in docker-compose.yml
.
Einen Projektnamen setzen
Docker Compose verwendet Projektnamen, um zusammengehörige Container zu gruppieren. Du kannst einen benutzerdefinierten Projektnamen mit dem -p
Flag setzen. Zum Beispiel:
docker compose -p meinprojekt up
Das ist hilfreich, wenn du mehrere Docker Compose-Projekte auf demselben System betreibst und sie organisiert halten möchtest.
Profile für optionale Services nutzen
Mit Profilen kannst du optionale Services aktivieren oder deaktivieren. Wenn du Services hast, die du nur manchmal benötigst, kannst du sie in deiner Compose-Datei mit einem Profil kennzeichnen. Dann kannst du diese Services beim Starten deiner Anwendung aktivieren. Zum Beispiel:
docker compose --profile debug up
Dieser Befehl startet deine Anwendung mit aktiviertem debug
-Profil, das zusätzliche Debugging-Tools oder Services enthalten könnte.
Parallelität konfigurieren
Beim Herunterladen von Images oder Bauen von Services kann Docker Compose diese Aufgaben parallel ausführen, um Zeit zu sparen. Du kannst den Grad der Parallelität mit dem --parallel
Flag steuern. Um die Parallelität auf eine Aufgabe gleichzeitig zu beschränken:
docker compose --parallel 1 pull
Umgebungsvariablen setzen
Du kannst Umgebungsvariablen verwenden, um anzupassen, wie Docker Compose läuft. Um beispielsweise eine andere Compose-Datei anzugeben, ohne das -f
Flag zu verwenden, kannst du die COMPOSE_FILE
Umgebungsvariable setzen:
export COMPOSE_FILE=docker-compose.prod.yml
docker compose up
Ähnliche Umgebungsvariablen gibt es für Projektnamen (COMPOSE_PROJECT_NAME
), Profile (COMPOSE_PROFILES
) und Parallelität (COMPOSE_PARALLEL_LIMIT
).
Befehle mit Dry Run testen
Bevor du Änderungen an deiner Anwendung vornimmst, kannst du Befehle mit dem --dry-run
Flag testen. Dies zeigt dir, was Docker Compose tun würde, ohne es tatsächlich zu tun. Zum Beispiel:
docker compose --dry-run up
Dieser Befehl listet alle Schritte auf, die Docker Compose unternehmen würde, um deine Anwendung zu starten, startet aber tatsächlich nichts.
Häufige Docker Compose Befehle
Hier sind einige gängige Befehle, die du mit Docker Compose verwenden wirst:
docker compose build
: Baut oder aktualisiert Services.docker compose up
: Erstellt und startet Container.docker compose down
: Stoppt und entfernt Container und Netzwerke.docker compose logs
: Zeigt die Ausgabe der Container an.docker compose ps
: Listet Container auf.docker compose exec
: Führt einen Befehl in einem laufenden Container aus.
Jeder dieser Befehle kann mit den Optionen und Flags, die wir besprochen haben, wie -f
, -p
, --profile
und --parallel
, an deine speziellen Bedürfnisse angepasst werden.
Durch die Verwendung von Docker Compose vereinfachst du die Verwaltung deiner Docker-Anwendungen mit mehreren Containern und machst es dir leichter, deine Projekte zu entwickeln, zu testen und zu deployen.