Zum Inhalt springen

Docker Compose: Dienste dauerhaft betreiben

Zuletzt geprüft Docker

Sobald ein Container mehr als eine Handvoll Optionen braucht — oder mehrere Dienste zusammenspielen —, wird der docker run-Befehl unhandlich. Docker Compose beschreibt dein Setup stattdessen in einer Datei: nachvollziehbar, versionierbar, mit einem Befehl startbar. Auf unseren Managed Servern ist das der empfohlene Weg für alles, was dauerhaft laufen soll.

  • Rootless Docker ist für deinen Benutzer freigeschaltet — siehe Rootless Docker: Grundlagen.
  • Compose ist dabei: docker compose version muss eine Version anzeigen. Falls nicht, Ticket öffnen — wir rüsten nach.
  1. Leg ein Verzeichnis pro Projekt an, z. B. mkdir -p ~/docker/cache && cd ~/docker/cache.
  2. Erstelle die compose.yaml — hier am Beispiel eines ValKey-Caches:
    services:
    valkey:
    image: valkey/valkey:8
    restart: unless-stopped
    ports:
    - "127.0.0.1:6379:6379"
    volumes:
    - valkey-data:/data
    volumes:
    valkey-data:
  3. Starte das Setup: docker compose up -d
  4. Prüfe den Zustand: docker compose ps und docker compose logs -f
  5. Für Updates: docker compose pull && docker compose up -d — zieht neue Image-Versionen und startet nur, was sich geändert hat.
  6. Stoppen ohne Daten zu verlieren: docker compose down (Volumes bleiben erhalten).

Zwei Dienste wollen denselben lokalen Port — etwa zwei Projekte mit je einem ValKey auf 6379.

Lösung: Im zweiten Projekt einen anderen Host-Port mappen ("127.0.0.1:6380:6379") und die Anwendung auf diesen Port zeigen lassen.

Der Dienst hat in den Container geschrieben statt in ein Volume — down entfernt Container samt Inhalt.

Lösung: Volume-Mapping ergänzen (siehe Beispiel) und die Daten neu aufbauen. Für Caches wie ValKey ist das verschmerzbar; für alles andere gilt: erst Volume, dann Betrieb.

Compose wendet Änderungen erst beim nächsten up an.

Lösung: docker compose up -d erneut ausführen — Compose erkennt die Differenz und baut nur die betroffenen Container neu.

Compose startet nicht oder das Setup verhält sich anders als beschrieben? Ticket im Kundencenter öffnen — schick die compose.yaml und die Ausgabe von docker compose logs mit.