4.1 Der Befehl docker compose up
Der Befehl docker compose up
ist der zentrale Befehl von Docker Compose, der es dir ermöglicht, Multi-Container-Anwendungen zu starten, die in der Datei compose.yaml
definiert sind. Er erstellt und startet automatisch alle in der Konfiguration angegebenen Services, konfiguriert Netzwerke und mountet Volumes. In dieser Vorlesung schauen wir uns die Nutzung des Befehls docker compose up
, seine wichtigsten Parameter und Best Practices genauer an.
Hauptfunktionen des Befehls docker compose up
- Erstellen und Starten von Containern: Der Befehl
docker compose up
erstellt und startet alle Container, die im Abschnittservices
der Dateicompose.yaml
angegeben sind. - Konfiguration von Netzwerken und Volumes: Docker Compose erstellt automatisch die benötigten Netzwerke und mountet die in der Konfiguration angegebenen Volumes.
- Paralleles Starten von Services: Alle Services werden parallel gestartet, was den Startprozess von Multi-Container-Anwendungen beschleunigt.
- Log-Monitoring: Der Befehl zeigt die Logs aller gestarteten Container in Echtzeit an, was es ermöglicht, deren Zustand zu überwachen und Probleme schnell zu identifizieren.
Syntax des Befehls docker compose up
docker compose up [options] [SERVICE...]
Wo:
-
[options]
: Zusätzliche Parameter zur Konfiguration des Verhaltens des Befehls (z.B.--detach
,--build
,--scale
). -
[SERVICE...]
: (optional) Eine Liste von Services, die gestartet werden sollen. Wenn nicht angegeben, werden alle Services gestartet.
4.2 Beispiele für docker compose up
Beispiele für die Verwendung des Befehls docker compose up
:
1. Starten aller Dienste
Starten aller Dienste, die in der Datei compose.yaml
angegeben sind:
docker compose up
2. Start eines bestimmten Dienstes
Start eines bestimmten Dienstes, zum Beispiel web
:
docker compose up web
3. Hintergrundmodus
Um alle Dienste im Hintergrundmodus zu starten, benutze die Option -d
(detached mode):
docker compose up -d
Mit dieser Option wird der Befehl sofort nach dem Start der Container beendet, und sie werden im Hintergrund ausgeführt.
4.3 Parameter des Befehls docker compose up
Nützliche Parameter des Befehls docker compose up
:
1. Parameter --build
Dieser Parameter zwingt Docker Compose dazu, die Images vor dem Start der Container neu zu erstellen. Nützlich, wenn du Änderungen am Quellcode oder Dockerfile vorgenommen hast.
docker compose up --build
2. Parameter --force-recreate
Der Parameter --force-recreate
zwingt Docker Compose dazu, die Container neu zu erstellen, auch wenn deren Konfiguration nicht geändert wurde.
docker compose up --force-recreate
3. Parameter --no-recreate
Der Parameter --no-recreate
verhindert, dass bereits vorhandene Container neu erstellt werden, auch wenn sich deren Konfiguration geändert hat.
docker compose up --no-recreate
4. Parameter --remove-orphans
Dieser Parameter entfernt Container, die nicht in der aktuellen Datei compose.yaml
definiert sind, aber durch vorherige Docker-Compose-Läufe erstellt wurden.
docker compose up --remove-orphans
5. Parameter -V
, --renew-anon-volumes
Diese Parameter zwingen Docker Compose dazu, die anonymen Volumes neu zu erstellen, anstatt sie wiederzuverwenden.
docker compose up -V
4.4 Beispiele und Empfehlungen
Beispiele für die Verwendung des Befehls docker compose up
mit verschiedenen Optionen:
Beispiel 1: Anwendung mit Neuaufbau der Images starten
Dieses Beispiel baut die Images vor dem Starten der Container neu, was nützlich ist, wenn du Änderungen am Quellcode oder Dockerfile vorgenommen hast.
docker compose up --build
Beispiel 2: Im Hintergrundmodus starten und Container neu erstellen
Dieses Beispiel startet die Container im Hintergrundmodus und erstellt sie neu, selbst wenn die Konfiguration nicht geändert wurde.
docker compose up -d --force-recreate
Beispiel 3: Spezifischen Dienst starten und nicht benötigte Container entfernen
Dieses Beispiel startet nur den Dienst web
und entfernt Container, die nicht in der aktuellen compose.yaml
-Datei definiert sind.
docker compose up web --remove-orphans
Praktische Empfehlungen
1. Verwendung einer .env
-Datei
Du kannst eine .env
-Datei verwenden, um Umgebungsvariablen zu definieren, die in deiner compose.yaml
verwendet werden. Das hilft, die Konfiguration zu verwalten und den Bereitstellungsprozess in verschiedenen Umgebungen zu vereinfachen.
2. Logs und Monitoring
Wenn du Container mit dem Befehl docker compose up
startest, werden alle Logs in der Konsole ausgegeben. Das ermöglicht es dir, den Zustand der Dienste zu überwachen und schnell auf auftretende Probleme zu reagieren. Für detailliertes Monitoring kannst du die Befehle docker compose logs
und docker compose ps
verwenden.
3. Automatisierung von Build und Bereitstellung
Die Integration des Befehls docker compose up
in Automatisierungsskripte oder CI/CD-Pipelines hilft, den Prozess des Builds und der Bereitstellung von Multi-Container-Anwendungen zu automatisieren. Zum Beispiel kannst du Jenkins oder GitHub Actions so einrichten, dass docker compose up
automatisch bei jeder Code-Aktualisierung gebaut, deployed und gestartet wird.
GO TO FULL VERSION