Erweiterte Compose-Techniken
Skalierung von Diensten und Lastverteilung
graph TD
A[Load Balancer] --> B[Service-Replik 1]
A --> C[Service-Replik 2]
A --> D[Service-Replik 3]
Skalierungs-Konfiguration
version: "3.8"
services:
web:
image: nginx:latest
deploy:
replicas: 3
update_config:
parallelism: 1
delay: 10s
ports:
- "80:80"
Dynamische Dienstverwaltung
Technik |
Befehl |
Beschreibung |
Skalierung von Diensten |
docker compose up --scale web=5 |
Dynamische Anpassung der Containeranzahl |
Rollende Updates |
docker compose up --force-recreate |
Aktualisierung von Diensten mit minimaler Ausfallzeit |
Selektive Bereitstellung |
docker compose up service1 service2 |
Bereitstellung spezifischer Dienste |
Produktionsreife Bereitstellungsstrategien
## Konfiguration prüfen
docker compose config
## Trockenlauf-Bereitstellung
docker compose up --dry-run
## Produktionsbereitstellung
docker compose up -d --remove-orphans
Container-Gesundheitsüberprüfungen
services:
web:
image: myapp:latest
healthcheck:
test: ["CMD", "curl", "-f", "
interval: 30s
timeout: 10s
retries: 3
Erweiterte Netzwerkfunktionen
graph LR
A[Benutzerdefiniertes Netzwerk] --> B[Interne Kommunikation]
A --> C[Externer Zugriff]
A --> D[Dienstfindung]
Überwachung und Protokollierung
## Echtzeit-Dienstprotokolle
docker compose logs -f
## Ressourcenüberwachung
docker compose top
## Leistungsmetriken
docker stats
Konfiguration für mehrere Umgebungen
version: "3.8"
services:
web:
image: myapp:${ENV:-development}
environment:
- DATABASE_URL=${DATABASE_URL}
Geheimhaltungsverwaltung
## Docker-Secrets erstellen
echo "database_password" | docker secret create db_password -
## Verwendung von Secrets in der Compose-Datei
services:
database:
secrets:
- db_password