Definition von Multi-Container-Anwendungen mit Compose
Struktur der Compose-Datei
Die Compose-Datei wird im YAML-Format geschrieben und typischerweise als docker-compose.yml
bezeichnet. Sie besteht aus mehreren Schlüsselelementen:
- Version: Gibt die Version des Compose-Dateiformats an.
- Services: Definiert die verschiedenen Services (Container), aus denen Ihre Anwendung besteht.
- Netzwerke: Konfiguriert die Netzwerke, die Ihre Services zur Kommunikation miteinander verwenden.
- Volumes: Definiert die Volumes, die Ihre Services zur Datenspeicherung verwenden.
Hier ist ein Beispiel für eine Compose-Datei, die einen Web-Service und einen Datenbank-Service definiert:
version: "3"
services:
web:
image: nginx:latest
ports:
- "8080:80"
depends_on:
- db
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: password
volumes:
- db-data:/var/lib/mysql
volumes:
db-data:
Definition von Services
Jeder Service in der Compose-Datei repräsentiert einen Docker-Container. Sie können verschiedene Konfigurationsoptionen für jeden Service angeben, wie z. B. den Docker-Image, Umgebungsvariablen, Ports, Volumes und Abhängigkeiten von anderen Services.
Beispielsweise verwendet der Service web
im vorherigen Beispiel das Image nginx:latest
, exponiert Port 80 im Container auf Port 8080 im Hostsystem und ist abhängig vom Service db
.
Netzwerk und Volumes
Compose erstellt automatisch ein Standardnetzwerk für Ihre Anwendung, sodass Ihre Services miteinander kommunizieren können. Sie können auch benutzerdefinierte Netzwerke und Volumes definieren, um die Konnektivität und die Datenspeicherung Ihrer Anwendung zu steuern.
Im Beispiel verwendet der Service db
ein benanntes Volume db-data
, um seine Daten zu speichern. Dadurch wird sichergestellt, dass die Daten nicht verloren gehen, wenn der Container gestoppt oder entfernt wird.
Skalierung und Bereitstellung
Sobald Sie Ihre Compose-Datei definiert haben, können Sie das docker-compose
-Befehlszeilentool verwenden, um Ihre Anwendung zu verwalten. Beispielsweise können Sie docker-compose up
verwenden, um Ihre Anwendung zu starten, docker-compose scale web=3
, um den Web-Service auf drei Instanzen zu skalieren, und docker-compose down
, um Ihre Anwendung zu stoppen und zu entfernen.
Im nächsten Abschnitt werden wir die Bereitstellung und Verwaltung Ihrer Compose-Anwendungen detaillierter untersuchen.