CodeGym /Kurse /Docker SELF /Starten von Anwendungen und Diensten

Starten von Anwendungen und Diensten

Docker SELF
Level 15 , Lektion 3
Verfügbar

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

  1. Erstellen und Starten von Containern: Der Befehl docker compose up erstellt und startet alle Container, die im Abschnitt services der Datei compose.yaml angegeben sind.
  2. Konfiguration von Netzwerken und Volumes: Docker Compose erstellt automatisch die benötigten Netzwerke und mountet die in der Konfiguration angegebenen Volumes.
  3. Paralleles Starten von Services: Alle Services werden parallel gestartet, was den Startprozess von Multi-Container-Anwendungen beschleunigt.
  4. 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:

Terminal

docker compose up

2. Start eines bestimmten Dienstes

Start eines bestimmten Dienstes, zum Beispiel web:

Terminal

docker compose up web

3. Hintergrundmodus

Um alle Dienste im Hintergrundmodus zu starten, benutze die Option -d (detached mode):

Terminal

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.

Terminal

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.

Terminal

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.

Terminal

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.

Terminal

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.

Terminal

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.

Terminal

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.

Terminal

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.

Terminal

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.

Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION