Site icon bintorosoft.com

Docker Compose Setup: Services sauber strukturieren

Penguin with glasses and a surprised look on his face is looking at a laptop on white background.

Docker Compose ist ein leistungsfähiges Werkzeug, um Multi-Container-Anwendungen auf Linux-Servern sauber zu strukturieren und zu verwalten. Es ermöglicht die Definition von Services, Netzwerken und Volumes in einer einzigen YAML-Datei, wodurch der Betrieb und die Reproduzierbarkeit von Container-Setups erheblich vereinfacht werden. In diesem Tutorial erklären wir Schritt für Schritt, wie Docker Compose installiert, konfiguriert und für produktive Anwendungen genutzt wird.

Voraussetzungen

Bevor Sie mit Docker Compose starten, sollten folgende Punkte erfüllt sein:

# Docker Version prüfen
docker --version

Docker Compose installieren

Installation auf Linux

Die aktuelle Version von Docker Compose kann direkt über die offizielle GitHub-Seite bezogen werden:

# Compose Binary herunterladen (Beispiel: Version 2.21.0)
sudo curl -L "https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

Binary ausführbar machen

sudo chmod +x /usr/local/bin/docker-compose

Version prüfen

docker-compose --version

Grundstruktur einer docker-compose.yml

Die YAML-Datei definiert die Container, Netzwerke und Volumes Ihrer Anwendung. Ein einfaches Beispiel:

version: '3.9'

services:
web:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html
networks:
- frontend

db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: appdb
volumes:
- dbdata:/var/lib/mysql
networks:
- backend

networks:
frontend:
backend:

volumes:
dbdata:

Erklärung

Docker Compose Befehle

Die wichtigsten CLI-Befehle zur Verwaltung von Docker Compose:

# Container im Hintergrund starten
docker-compose up -d

Container stoppen

docker-compose down

Logs anzeigen

docker-compose logs -f

Status der Services prüfen

docker-compose ps

Services neu starten (nach Änderung der YAML)

docker-compose up -d --build

Volumes und Datenpersistenz

Volumes sichern Daten auch nach dem Stoppen oder Neustarten von Containern:

# Volumes prüfen
docker volume ls

Volumes löschen (vorsichtig)

docker volume rm

Netzwerke sauber verwalten

Jeder Service kann einem oder mehreren Netzwerken zugeordnet werden:

# Eigene Netzwerke definieren
docker network create frontend
docker network create backend

Container einem Netzwerk zuordnen

docker network connect frontend web

Best Practices für Docker Compose

Strukturierung

Sicherheit

Ressourcenmanagement

services:
  web:
    image: nginx
    deploy:
      resources:
        limits:
          cpus: "0.5"
          memory: 512M
  • Ressourcenverbrauch überwachen, z. B. mit docker stats
  • Fehlerbehebung

    Häufige Probleme und deren Lösungen:

    Versionierung und CI/CD

    Docker Compose YAML-Dateien sollten in Versionskontrolle (z. B. Git) liegen. In CI/CD-Pipelines können Builds automatisiert werden:

    # Beispiel für CI/CD Schritt
    docker-compose -f docker-compose.prod.yml up -d --build
    

    Fazit

    Docker Compose ermöglicht eine klare Strukturierung von Multi-Container-Anwendungen und vereinfacht Betrieb, Updates und Monitoring. Durch sauberes Netzwerk-, Volume- und Ressourcenmanagement sowie Einhaltung von Sicherheitsrichtlinien lassen sich produktive Linux-Serverumgebungen effizient betreiben und warten.

    Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

    Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

    Meine Leistungen umfassen:

    Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

    Exit mobile version