Kurzantwort: Docker Compose Production = restart: unless-stopped, .env für Secrets, Traefik für SSL, tägliche Volume-Backups.
Wenn du hier landest: Dein Compose-Stack läuft lokal – du willst ihn sicher auf einem VPS in Deutschland betreiben.
Production-Template
# docker-compose.yml
services:
app:
image: ghcr.io/deinuser/deine-app:1.2.3
restart: unless-stopped
env_file: .env
networks:
- web
labels:
- "traefik.enable=true"
- "traefik.http.routers.app.rule=Host(`app.deinedomain.de`)"
- "traefik.http.routers.app.entrypoints=websecure"
- "traefik.http.routers.app.tls.certresolver=le"
db:
image: postgres:16
restart: unless-stopped
env_file: .env
volumes:
- pgdata:/var/lib/postgresql/data
networks:
- internal
networks:
web:
internal:
internal: true
volumes:
pgdata:
Deploy-Checkliste
- VPS einrichten → VPS Guide
- Docker installieren:
apt install docker.io docker-compose-v2 - UFW: 22, 80, 443 → Firewall
.envmit Secrets erstellendocker compose up -d- DNS A-Record → A-Record
- Backup-Cron einrichten
Weiterführend
VPS & Root Server: VPS in Deutschland bestellen · NexoraHost · nexorahost.com (Maincubes FRA01 Frankfurt · Ryzen · NVMe)
Häufige Fragen (FAQ)
Reicht Docker Compose für Production?
Ja für die meisten Projekte bis ~50 Container auf 1–3 Servern. Ab Multi-Region/Auto-Scale: Kubernetes/k3s.
Wie sichere ich Docker Compose Secrets?
.env Datei (nicht in Git), Docker Secrets oder externe Vault. Niemals Passwörter in docker-compose.yml committen.
Automatische Updates?
Watchtower mit Vorsicht (kann breaking changes deployen). Besser: CI/CD mit getesteten Image-Tags oder manuelles docker compose pull.
Backups bei Docker?
Named Volumes regelmäßig sichern: docker run --rm -v pgdata:/data -v $(pwd):/backup alpine tar czf /backup/pgdata.tar.gz /data
Compose auf welchem VPS?
Min. 4 GB RAM für 3–5 Container. 8 GB für DB + App + Traefik + Monitoring. Frankfurt für DE-Latenz.