DockerEinsteiger

Docker Container automatisch updaten mit Watchtower

Schluss mit manuellen Updates! Watchtower überwacht deine Docker Container automatisch und hält sie immer auf dem neuesten Stand. In diesem Guide lernst du, wie du Watchtower einrichtest und optimal konfigurierst.

10 Minuten Lesezeit
Praxis-getestet

🤔 Was ist Watchtower?

Watchtower ist ein Docker Container, der deine anderen Container automatisch überwacht und aktualisiert. Es prüft regelmäßig, ob neue Versionen deiner Images verfügbar sind und führt bei Bedarf automatische Updates durch.

Warum Watchtower verwenden?

  • Zeitersparnis: Keine manuellen Updates mehr
  • Sicherheit: Immer die neuesten Security-Patches
  • Konsistenz: Einheitliche Update-Prozesse
  • Überwachung: Automatische Benachrichtigungen

So funktioniert Watchtower

  1. Watchtower läuft als Docker Container
  2. Es überwacht andere Container über die Docker API
  3. Regelmäßige Prüfung auf neue Image-Versionen
  4. Automatischer Pull und Restart bei Updates
  5. Optionale Benachrichtigungen über Slack, E-Mail etc.

🚀 Watchtower installieren

Schnellstart mit Docker Run

Bash
docker run -d \
  --name watchtower \
  -v /var/run/docker.sock:/var/run/docker.sock \
  containrrr/watchtower

Docker Compose Setup (Empfohlen)

Für Production-Umgebungen empfehle ich Docker Compose. Erstelle eine docker-compose.yml:

docker-compose.yml
version: '3.8'

services:
  watchtower:
    image: containrrr/watchtower
    container_name: watchtower
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - WATCHTOWER_CLEANUP=true
      - WATCHTOWER_POLL_INTERVAL=3600
      - WATCHTOWER_INCLUDE_RESTARTING=true
    restart: unless-stopped
Bash
# Watchtower starten
docker-compose up -d

# Status prüfen
docker-compose logs watchtower

⚙️ Grundkonfiguration

Wichtige Umgebungsvariablen

WATCHTOWER_CLEANUP

true - Entfernt alte Images nach dem Update automatisch

WATCHTOWER_POLL_INTERVAL

3600 - Prüfintervall in Sekunden (3600 = 1 Stunde)

WATCHTOWER_INCLUDE_RESTARTING

true - Überwacht auch Container die gerade neu starten

Container-spezifische Labels

Du kannst einzelne Container von Updates ausschließen oder spezielle Regeln festlegen:

docker-compose.yml
services:
  myapp:
    image: myapp:latest
    labels:
      # Container von Updates ausschließen
      - "com.centurylinklabs.watchtower.enable=false"
      
  database:
    image: postgres:14
    labels:
      # Nur bestimmte Tags überwachen
      - "com.centurylinklabs.watchtower.enable=true"
      # Benachrichtigungen aktivieren
      - "com.centurylinklabs.watchtower.notify=true"

🔧 Erweiterte Optionen

Zeitplan-basierte Updates

Updates nur zu bestimmten Zeiten ausführen (z.B. nachts):

environment:
  - WATCHTOWER_SCHEDULE=0 0 4 * * *  # Täglich um 4:00 Uhr
  - WATCHTOWER_TIMEZONE=Europe/Berlin

Slack-Benachrichtigungen

environment:
  - WATCHTOWER_NOTIFICATIONS=slack
  - WATCHTOWER_NOTIFICATION_SLACK_HOOK_URL=https://hooks.slack.com/...
  - WATCHTOWER_NOTIFICATION_SLACK_IDENTIFIER=watchtower-server
  - WATCHTOWER_NOTIFICATION_SLACK_CHANNEL=#updates

💡 Best Practices

1. Staging-Umgebung zuerst

Teste Updates immer zuerst in einer Staging-Umgebung, bevor sie in Production ausgerollt werden.

2. Backup vor Updates

Erstelle automatische Backups deiner Daten vor jedem Update. Kombiniere Watchtower mit Backup-Lösungen.

3. Monitoring einrichten

Überwache die Gesundheit deiner Container nach Updates. Nutze Health Checks und Monitoring-Tools.

🔍 Troubleshooting

Problem: Container werden nicht aktualisiert

Lösung 1: Prüfe die Logs: docker logs watchtower

Lösung 2: Stelle sicher, dass der Docker Socket gemountet ist

Lösung 3: Prüfe Labels und Konfiguration der Container

Problem: Watchtower verbraucht zu viele Ressourcen

Lösung: Erhöhe das Poll-Intervall oder nutze Cron-basierte Updates

WATCHTOWER_POLL_INTERVAL=7200 # 2 Stunden

🚀 Deine Container sind jetzt zukunftssicher!

Mit Watchtower hast du ein robustes System für automatische Updates. Deine Docker-Container bleiben immer aktuell, ohne dass du dich darum kümmern musst. Perfekt für Home Server, Development-Umgebungen und Production-Systeme.

Automatische Updates ohne manuelle Intervention
Sicherheitspatches werden sofort installiert
Flexible Konfiguration für verschiedene Anforderungen

📚 Ähnliche Artikel