Zum Inhalt springen
_CORE
KI & Agentensysteme Unternehmensinformationssysteme Cloud & Platform Engineering Datenplattform & Integration Sicherheit & Compliance QA, Testing & Observability IoT, Automatisierung & Robotik Mobile & Digitale Produkte Banken & Finanzen Versicherungen Öffentliche Verwaltung Verteidigung & Sicherheit Gesundheitswesen Energie & Versorgung Telko & Medien Industrie & Fertigung Logistik & E-Commerce Retail & Treueprogramme
Referenzen Technologien Blog Know-how Tools
Über uns Zusammenarbeit Karriere
CS EN DE
Lassen Sie uns sprechen

Docker Compose: Multi-Container-Anwendungen leicht gemacht

02. 03. 2015 1 Min. Lesezeit CORE SYSTEMSai
Docker Compose: Multi-Container-Anwendungen leicht gemacht

Docker Compose ermöglicht es, Multi-Container-Anwendungen mit einem einzigen Befehl zu definieren und auszuführen. Ein praktischer Leitfaden vom Development-Setup bis zu Integrationstests.

Vom Dockerfile zur gesamten Anwendung

Docker hat das „Works on my machine”-Problem für einzelne Container gelöst. Docker Compose geht weiter — es definiert den gesamten Application Stack in einer einzigen YAML-Datei. Webserver, Datenbank, Cache, Message Broker — alles gestartet mit einem docker-compose up.

Compose ist ein zentrales Tool für die lokale Entwicklung und CI/CD-Pipelines. Jeder Entwickler erhält innerhalb von Sekunden eine identische Umgebung.

Aufbau von docker-compose.yml

Eine typische Webanwendung in Compose:

version: '2'
services:
  web:
    build: .
    ports:
      - "8080:80"
    volumes:
      - ./src:/app/src
    depends_on:
      - db
      - redis
    environment:
      DATABASE_URL: postgres://user:pass@db:5432/app

  db:
    image: postgres:9.5
    volumes:
      - pgdata:/var/lib/postgresql/data

  redis:
    image: redis:3-alpine

volumes:
  pgdata:

Services, Networks und Volumes — die drei Säulen der Compose-Konfiguration.

Development-Workflow mit Compose

Compose transformiert das Onboarding neuer Entwickler:

  • git clone + docker-compose up = eine funktionierende Umgebung
  • Hot Reload über Bind Mounts (volumes)
  • Isolierte Datenbanken — keine Konflikte zwischen Projekten
  • docker-compose run web pytest für Tests in derselben Umgebung

Für CI/CD-Pipelines genügt docker-compose -f docker-compose.test.yml up --abort-on-container-exit, um Integrationstests auszuführen.

Best Practices und Tipps

Einige bewährte Regeln:

  • Verwenden Sie eine .env-Datei für Umgebungsvariablen
  • Definieren Sie Health Checks für zuverlässiges depends\_on
  • Trennen Sie Produktions- und Entwicklungs-Override-Dateien (docker-compose.override.yml)
  • Benennen Sie Volumes, um Daten zwischen Neustarts zu erhalten
  • Verwenden Sie docker-compose logs -f service\_name zum Debugging

Fazit: Der Standard für lokale Entwicklung

Docker Compose wird zum De-facto-Standard für lokale Entwicklungsumgebungen. Es beseitigt „Works on my machine”-Probleme, beschleunigt das Onboarding und gewährleistet Konsistenz zwischen Entwicklung und Produktion. Jedes Projekt sollte seine eigene docker-compose.yml haben.

dockerdocker composekontejnerydevopsmicroservicesinfrastruktura
Teilen:

CORE SYSTEMS

Wir bauen Kernsysteme und KI-Agenten, die den Betrieb am Laufen halten. 15 Jahre Erfahrung mit Enterprise-IT.

Brauchen Sie Hilfe bei der Implementierung?

Unsere Experten helfen Ihnen bei Design, Implementierung und Betrieb. Von der Architektur bis zur Produktion.

Kontaktieren Sie uns