Linuxguide

Watchtower – Docker Container automatisch aktualisieren 2025

Immer aktuelle Images ohne manuelles Pull und Restart

S
SeeColors IT
11. Juni 20264 Min. Lesezeit55 Aufrufe

Was ist Watchtower?

Watchtower ist ein Docker-Container der alle anderen laufenden Container überwacht und sie automatisch auf die neueste Version des konfigurierten Images aktualisiert – ohne manuelles Eingreifen.

Wann sinnvoll: Homelab, nicht-kritische Dienste, Staging-Umgebungen.
Wann nicht: Produktionssysteme mit strenger Change-Management-Policy.

Schnellstart

docker run -d \
  --name watchtower \
  --restart unless-stopped \
  -v /var/run/docker.sock:/var/run/docker.sock \
  containrrr/watchtower

Watchtower prüft nun alle 24 Stunden auf neue Images und updated Container automatisch.

Docker Compose mit Konfiguration

services:
  watchtower:
    image: containrrr/watchtower:latest
    container_name: watchtower
    restart: unless-stopped
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      # Jede Nacht um 4:00 Uhr (Cron-Syntax)
      WATCHTOWER_SCHEDULE: "0 0 4 * * *"
      # Alte Images automatisch entfernen
      WATCHTOWER_CLEANUP: "true"
      # Benachrichtigung per E-Mail
      WATCHTOWER_NOTIFICATIONS: email
      WATCHTOWER_NOTIFICATION_EMAIL_FROM: [email protected]
      WATCHTOWER_NOTIFICATION_EMAIL_TO: [email protected]
      WATCHTOWER_NOTIFICATION_EMAIL_SERVER: mail.firma.de
      WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT: "587"
      WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER: [email protected]
      WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD: passwort
      # Rollendes Restart (nicht alle gleichzeitig)
      WATCHTOWER_ROLLING_RESTART: "true"

Bestimmte Container ausschließen

services:
  kritische-app:
    image: myapp:1.5.0
    labels:
      - "com.centurylinklabs.watchtower.enable=false"  # Nicht updaten!

  unkritische-app:
    image: nginx:latest
    # Kein Label = Watchtower updated sie

Nur bestimmte Container updaten

# Watchtower nur für Container mit Label starten
docker run -d \
  --name watchtower \
  -v /var/run/docker.sock:/var/run/docker.sock \
  containrrr/watchtower \
  --label-enable

# Nur diese Container werden überwacht:
docker run -d --label "com.centurylinklabs.watchtower.enable=true" nginx

Benachrichtigungen per Slack/Teams

environment:
  WATCHTOWER_NOTIFICATIONS: slack
  WATCHTOWER_NOTIFICATION_SLACK_HOOK_URL: "https://hooks.slack.com/services/xxx"
  WATCHTOWER_NOTIFICATION_SLACK_IDENTIFIER: "Watchtower Server1"

Einmaliger Run (kein Daemon)

# Alle Container jetzt updaten und Watchtower beenden
docker run --rm \
  -v /var/run/docker.sock:/var/run/docker.sock \
  containrrr/watchtower --run-once

Zeitplan (Cron-Syntax)

WATCHTOWER_SCHEDULE="0 0 4 * * *"
# Sekunde Minute Stunde Tag Monat Wochentag
# → Täglich um 04:00

FAQ

Ist Watchtower für Produktionssysteme geeignet?
Mit Vorsicht. Automatische Updates können Breaking Changes einführen. Empfehlung: Watchtower in Produktion mit --label-enable und explizit markierten Containern nutzen.

Was passiert wenn kein neues Image vorhanden ist?
Nichts. Watchtower prüft nur und startet Container neu wenn ein neues Image gepullt wurde.

Fazit

Watchtower spart viel manuelle Arbeit für Homelab- und Staging-Umgebungen. Mit sinnvollen Ausschlüssen und Benachrichtigungen ist es auch für KMU-Umgebungen geeignet.

Container-Management für KMU in Heidelberg, Mannheim und Rhein-Neckar. Anfragen.

Artikel teilen

War dieser Artikel hilfreich?

Dein Feedback hilft uns, bessere Inhalte zu erstellen.

Kommentar hinterlassen

Verwandte Artikel