Docker vereinfacht den Betrieb von Anwendungen enorm – doch die Container müssen aktuell bleiben, um Sicherheitslücken zu vermeiden. Genau hier hilft Watchtower: Ein leichtes Tool, das automatisch Updates für laufende Docker-Container durchführt. In diesem Tutorial zeigen wir, wie du Watchtower auf einem Ubuntu Server installierst und einrichtest.


1. Voraussetzungen

  • Ubuntu Server (22.04 oder neuer)
  • Docker und Docker Compose installiert
  • Grundkenntnisse im Umgang mit der Shell

Falls Docker noch nicht installiert ist, kannst du es mit folgendem Befehl nachholen:

curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER

2. Watchtower installieren

Watchtower selbst läuft als Docker-Container. Er überwacht andere Container und führt Updates automatisch durch.
Erstelle zunächst einen Ordner für die Konfiguration:

mkdir ~/watchtower && cd ~/watchtower

Erstelle dann die docker-compose.yml-Datei:

version: '3'
services:
  watchtower:
    image: containrrr/watchtower
    container_name: watchtower
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - WATCHTOWER_CLEANUP=true
      - WATCHTOWER_REMOVE_VOLUMES=false
      - WATCHTOWER_POLL_INTERVAL=86400
    restart: unless-stopped

Erläuterung:

  • WATCHTOWER_CLEANUP=true: Alte Container werden nach dem Update gelöscht.
  • WATCHTOWER_POLL_INTERVAL=86400: Watchtower prüft alle 24 Stunden auf Updates.

Starte Watchtower mit:

docker-compose up -d

3. Manuelle Update-Prüfung starten

Wenn du sofort ein Update erzwingen willst:

docker exec watchtower --run-once

Damit prüft Watchtower direkt alle Container und führt nötige Updates aus.


4. Bestimmte Container ausschließen

Wenn du manche Container nicht automatisch aktualisieren willst, kannst du sie beim Start mit einem Label versehen:

services:
  myapp:
    image: myimage:latest
    labels:
      - "com.centurylinklabs.watchtower.enable=false"

Watchtower ignoriert Container mit diesem Label.


5. Benachrichtigungen einrichten (optional)

Watchtower unterstützt E-Mail, Slack, Discord und andere Dienste für Benachrichtigungen.
Ein Beispiel für Slack:

environment:
  - WATCHTOWER_NOTIFICATIONS=slack
  - WATCHTOWER_NOTIFICATION_SLACK_HOOK_URL=https://hooks.slack.com/services/DEIN/SLACK/WEBHOOK
  - WATCHTOWER_NOTIFICATION_SLACK_IDENTIFIER=Watchtower

So bekommst du eine Nachricht, sobald ein Update durchgeführt wurde.


6. Updates planen

Wenn du die Kontrolle behalten willst, kannst du statt eines festen Intervalls auch eine Cron-ähnliche Zeitsteuerung verwenden:

environment:
  - WATCHTOWER_SCHEDULE=0 0 3 * * *

Das führt Updates täglich um 03:00 Uhr morgens aus.


7. Fazit

Mit Watchtower hältst du deine Docker-Container automatisch aktuell, ohne manuell eingreifen zu müssen.
Das spart Zeit, reduziert Sicherheitsrisiken und sorgt für ein stabiles System.

Ob auf einem kleinen Heimserver oder im produktiven Umfeld – Watchtower ist ein unverzichtbares Tool für jeden, der viele Container betreibt.


Tipp:
Wenn du Watchtower mit anderen Tools wie Portainer oder Traefik kombinierst, erhältst du eine rundum automatisierte und übersichtliche Container-Umgebung.