Erweiterte Compose-Strategien
Mehrumgebungskonfiguration
Docker Compose unterstützt eine ausgereifte Umgebungsverwaltung durch mehrere Konfigurationsdateien und Überlagerungsmechanismen.
graph LR
A[Basis-Konfiguration] --> B[Entwicklungs-Überlagerung]
A --> C[Produktions-Überlagerung]
A --> D[Staging-Überlagerung]
Umgebungsspezifische Konfiguration
version: "3.8"
services:
application:
image: myapp:latest
environment:
- APP_ENV=${DEPLOY_ENV:-development}
- DATABASE_URL=${DATABASE_CONNECTION}
Dynamische Skalierung von Services
## Skalierung des Web-Services auf 3 Instanzen
docker compose up -d --scale web=3
Erweiterte Netzwerkkonfigurationen
Netzwerkmodus |
Beschreibung |
Anwendungsfall |
bridge |
Standardnetzwerk |
Isolierte Containerkommunikation |
host |
Direktes Host-Netzwerk |
Hochleistungs-Szenarien |
custom |
Benutzerdefinierte Netzwerke |
Komplexe Microservice-Architekturen |
Produktionsreife Compose-Beispiel
version: '3.8'
services:
webserver:
image: nginx:alpine
deploy:
replicas: 3
update_config:
parallelism: 1
delay: 10s
healthcheck:
test: ["CMD", "curl", "-f", "
interval: 30s
timeout: 10s
retries: 3
backend:
image: myapp:${VERSION}
secrets:
- db_password
configs:
- source: app_config
target: /app/config.json
secrets:
db_password:
external: true
configs:
app_config:
file: ./config.json
Container-Versionsstrategien
## Versionierte Images taggen und pushen
docker build -t myapp:v1.0 .
docker compose push
Bereitstellungsablauf
graph TD
A[Images erstellen] --> B[Tests ausführen]
B --> C[In Registry pushen]
C --> D[Container bereitstellen]
D --> E[Performance überwachen]
Sicherheits- und Compliance-Befehle
## Compose-Services auf Schwachstellen prüfen
docker compose config --resolve-env-vars
docker scan docker-compose.yml