Automatisierte Docker-Updates mit Watchtower – Set & Forget!
Docker-Container sind ideal, um Services sauber und isoliert zu betreiben. Aber wie hält man sie aktuell? Die manuelle Aktualisierung jedes einzelnen Containers ist auf Dauer mühsam – genau hier kommt Watchtower ins Spiel.
Mit diesem kleinen Helfer kann man Container vollautomatisch aktualisieren lassen, inklusive Benachrichtigung per E-Mail – und das mit nur wenigen Zeilen in einer docker-compose.yml.
version: '3'
services:
watchtower:
image: containrrr/watchtower
container_name: watchtower
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /etc/timezone:/etc/timezone:ro
environment:
- WATCHTOWER_CLEANUP=true
- WATCHTOWER_LABEL_ENABLE=true
- WATCHTOWER_INCLUDE_RESTARTING=true
# - WATCHTOWER_POLL_INTERVAL=60
- WATCHTOWER_NOTIFICATIONS=email
- WATCHTOWER_NOTIFICATION_EMAIL_FROM=noreply@domain.tld
- WATCHTOWER_NOTIFICATION_EMAIL_TO=user@domain.tld
- WATCHTOWER_NOTIFICATION_EMAIL_SERVER=mail.domain.tld
- WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT=587
- WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER=noreply@domain.tld
- WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD=abc123
- WATCHTOWER_NOTIFICATION_EMAIL_DELAY=2
labels:
- com.centurylinklabs.watchtower.enable=true
Was macht Watchtower genau?
Watchtower überwacht laufende Container und prüft regelmäßig, ob es für das jeweilige Image eine neue Version gibt. Falls ja, wird:
- Das neue Image heruntergeladen
- Der Container gestoppt
- Der Container mit dem neuen Image neu gestartet
- Optional: eine Benachrichtigung versendet
Erklärung der wichtigsten Einstellungen
| Variable | Bedeutung |
|---|---|
WATCHTOWER_CLEANUP=true |
Alte Images werden automatisch gelöscht |
WATCHTOWER_LABEL_ENABLE=true |
Nur Container mit Label watchtower.enable=true werden überwacht |
WATCHTOWER_INCLUDE_RESTARTING=true |
Auch Container im "restarting"-Zustand werden berücksichtigt |
WATCHTOWER_POLL_INTERVAL=60 |
(optional) Intervall in Sekunden – wie oft auf Updates geprüft wird |
WATCHTOWER_NOTIFICATIONS=email |
E-Mail-Benachrichtigung bei Updates aktivieren |
WATCHTOWER_NOTIFICATION_EMAIL_* |
SMTP-Parameter für den Mail-Versand |
E-Mail-Benachrichtigungen
Dank SMTP-Konfiguration informiert Watchtower bei jedem Update automatisch – z. B.:
Watchtower updates on 437912393bec
Found new ghcr.io/linuxserver/heimdall:latest image (049761456a9e)
Stopping /heimdall (365ed1ba8edf) with SIGTERM
Creating /heimdall
Removing image d706b5847a51
Das gibt volle Transparenz über alle Veränderungen am System.
Tipp: Verwende ein separates Mailkonto für den Versand (z. B. noreply@domain.tld) und setze ein starkes Passwort.
Updates gezielt steuern per Label
Nur Container mit folgendem Label werden berücksichtigt:
labels:
- com.centurylinklabs.watchtower.enable=true
So behältt man die volle Kontrolle und vermeidest ungewollte Updates bei produktiven Diensten.
Sicherheit & Best Practices
- Verwende keine
latest-Tags: Nutze immer feste Versionsnummern für deine Container-Images, z. B.ghcr.io/wg-easy/wg-easy:v11.
Derlatest-Tag kann sich jederzeit ändern – ein automatisches Update könnte dann ein inkompatibles oder fehlerhaftes Image einspielen, was im schlimmsten Fall dazu führt, dass der Container nicht mehr startet oder Daten verloren gehen. - Gib Watchtower nur so viele Rechte wie nötig (kein Zugriff auf sensible Volumes!).
- Nutze Watchtower idealerweise nur für nicht-kritische Container oder in Testumgebungen.
- Kombiniere Watchtower mit einem Monitoring (z. B. Uptime Kuma), um fehlerhafte Updates schnell zu erkennen.
Fazit
Mit Watchtower steht ein smartes Tool zur Verfügung, um Docker-Container automatisch aktuell zu halten – zuverlässig und mit minimalem Aufwand. Besonders effizient wird der Einsatz in Kombination mit einer eigenen Container-Registry, da öffentliche Registries wie Docker Hub häufig Rate-Limits haben, die automatische Updates einschränken können.
Durch den gezielten Einsatz von Labels und Benachrichtigungen entsteht ein transparenter und wartungsarmer Update-Workflow – ideal für homelabs, Entwicklungsumgebungen oder selektiv auch für produktive Container mit klarer Versionsstrategie.