services ·
networks ·
volumes ·
environment ·
depends_on ·
docker-compose commands
Docker Compose ermöglicht die Definition und Verwaltung von Multi-Container-Anwendungen mit einer einzigen YAML-Datei. Diese Konzepte sind essenziell für Entwicklung, Test und Produktion.
services definieren die einzelnen Container einer Anwendung. Jeder Service hat einen Namen, ein Image und Konfiguration wie Ports, Umgebungsvariablen und Volumes.
build: .) oder ein Image von Docker Hub (image: nginx). Services sind über ihren Namen im Netzwerk erreichbar.
networks definieren das Netzwerk, in dem die Container kommunizieren können. Container im gleichen Netzwerk können sich über den Service-Namen erreichen.
db:5432 für die Datenbank, auch wenn sie nicht über Ports veröffentlicht ist.
volumes definieren persistente Daten, die über Container-Neustarts hinweg erhalten bleiben. Sie können zwischen Containern geteilt werden.
mysql_data) und Bind-Mounts für die Entwicklung (z.B. ./app:/app). Volumes werden nicht mit docker-compose down gelöscht.
environment setzt Umgebungsvariablen für den Container. env_file lädt Variablen aus einer Datei – ideal für sensible Daten wie Passwörter.
.env-Datei für sensible Daten. Compose lädt diese automatisch, wenn sie im gleichen Verzeichnis liegt. Vermeiden Sie es, Passwörter direkt in docker-compose.yml zu speichern.
depends_on definiert die Startreihenfolge der Services. Der Service startet erst, wenn die abhängigen Services gestartet sind. Mit condition: service_healthy wird auf den Healthcheck gewartet.
depends_on wartet nur auf den Start der Container, nicht auf die Verfügbarkeit der Services. Verwenden Sie condition: service_healthy für zuverlässige Startreihenfolgen.
docker-compose ist das Kommandozeilen-Tool zur Verwaltung der Compose-Anwendung. Diese Befehle sind für den täglichen Einsatz unverzichtbar.
| Befehl | Beschreibung |
|---|---|
| docker-compose up | Container starten (mit -d im Hintergrund) |
| docker-compose down | Container stoppen und entfernen |
| docker-compose down -v | Container + Volumes entfernen |
| docker-compose ps | Status der Container anzeigen |
| docker-compose logs | Logs der Container anzeigen |
| docker-compose logs -f | Logs live verfolgen |
| docker-compose exec | Befehl in Container ausführen |
| docker-compose build | Services neu bauen |
| docker-compose build --no-cache | Build ohne Cache |
| docker-compose pull | Images für Services herunterladen |
| docker-compose restart | Services neu starten |
| docker-compose stop | Container stoppen (nicht entfernen) |
| docker-compose start | Container starten (nach stop) |
docker-compose up -d --build kombiniert build und up – perfekt für schnelle Entwicklungsworkflows. docker-compose down -v entfernt auch benannte Volumes – vorsichtig bei Datenbanken!
services
networks
volumes
environment
depends_on
up / down
docker-compose up -d ·
docker-compose logs -f web ·
docker-compose exec web bash ·
docker-compose down -v