wiki/guides/watchtower/watchtower-einrichten.md

5.1 KiB

title description published date tags editor dateCreated
Einrichten von Watchtower in Docker Compose true 2024-02-10T22:52:37.490Z markdown 2024-02-10T22:52:37.490Z

Einrichten von Watchtower in Docker Compose

Watchtower ist ein Docker-Tool, das automatisch Docker-Container überwacht und aktualisiert, wenn neue Versionen ihrer Images verfügbar sind. Hier sind die wichtigsten Funktionen von Watchtower:

  1. Automatische Aktualisierung: Watchtower überwacht die Docker-Images Ihrer laufenden Container und sucht regelmäßig nach Updates. Wenn eine neue Version des Images verfügbar ist, zieht Watchtower automatisch das neueste Image herunter und startet den Container neu, um die Aktualisierung anzuwenden.

  2. Einfache Konfiguration: Watchtower kann einfach durch das Hinzufügen eines Containers zu Ihrer Docker-Compose-Konfiguration oder durch direkte Verwendung des Docker-Befehls aktiviert werden. Die Konfiguration ermöglicht es Ihnen, das Aktualisierungsintervall anzupassen und spezifische Container auszuschließen, wenn gewünscht.

  3. Unterstützung für mehrere Quellen: Watchtower kann Images von verschiedenen Quellen aktualisieren, einschließlich öffentlicher und privater Docker-Registries sowie benutzerdefinierter Image-URLs.

  4. Protokollierung und Benachrichtigungen: Watchtower erstellt Protokolle über durchgeführte Aktualisierungen und bietet die Möglichkeit, Benachrichtigungen zu konfigurieren, um Sie über Aktualisierungen zu informieren.

Insgesamt erleichtert Watchtower die Verwaltung und Aktualisierung von Docker-Containern, indem es den manuellen Prozess der Überwachung von Updates und deren Anwendung automatisiert.

Voraussetzungen

Stellen Sie sicher, dass Docker und Docker Compose auf Ihrem System installiert sind.

Schritte

1. Docker Compose Datei erstellen

Erstellen Sie eine docker-compose.yml-Datei in Ihrem Projektverzeichnis. Hier ist ein einfaches Beispiel:

~~~
version: "3"

services:
  watchtower:
    image: containrrr/watchtower
    restart: always
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /etc/localtime:/etc/localtime:ro
    environment:
      - WATCHTOWER_NOTIFICATIONS_LEVEL=info # Klassifizierung, die für die Benachrichtigungen verwendet wird. Mögliche Werte sind: panic, fatal, error, warn, info, debug oder trace.
      - WATCHTOWER_NOTIFICATIONS=shoutrrr email
      - WATCHTOWER_NOTIFICATION_URL=ntfy://${USER}:${SECRET}@ntfy.${DOMAIN}/watchtower?title=WatchtowerUpdate
      - WATCHTOWER_NOTIFICATION_EMAIL_FROM=watchtower@${DOMAIN}         # Angezeigter Absender der Email einfügen
      - WATCHTOWER_NOTIFICATION_EMAIL_TO=${USER}@${DOMAIN}        # Empfänger-Adresse der Email einfügen
      - WATCHTOWER_NOTIFICATION_EMAIL_SERVER=mail.${DOMAIN}                # SMTP-Server einfügen
      - WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER=watchtower@${DOMAIN}  # SMTP Benutzername einfügen
      - WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD=${SECRET}           # SMTP-Passwort einfügen
      - WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT=465                        # SMTP-Port einfügen
      - WATCHTOWER_LABEL_ENABLE=true
      - WATCHTOWER_SCHEDULE=0 0 7 * * * # Hier anpassen. Im Beispiel: Jeden Morgen um 07:00 Uhr
      - WATCHTOWER_TIMEOUT=600s # Hier passen wir die Timeoutzeit an.
      - WATCHTOWER_INCLUDE_RESTARTING=true # Hiermit wird der Neustart konfiguriert.
	    - WATCHTOWER_CLEANUP=true # Mit dieser Option werden nach dem Start des neuen Images die alten entfernt
      - WATCHTOWER_ROLLING_RESTART=true # Restart nacheinander durchführen
      - WATCHTOWER_HTTP_API_METRICS=true
      - WATCHTOWER_HTTP_API_TOKEN=${SECRET}
    labels:
      - "com.centurylinklabs.watchtower.enable=true" # Hiermit wird dieser Service explizit automatisiert aktualisiert.
    networks:
      dns:
        ipv4_address: 172.28.0.10

networks:
  dns:
    name: dns
    external: true

2. Watchtower konfigurieren

In der obenstehenden docker-compose.yml wird Watchtower konfiguriert, um alle 30 Sekunden nach Aktualisierungen zu suchen. Sie können das Intervall nach Bedarf anpassen.

3. Docker Compose ausführen

Führen Sie den folgenden Befehl in Ihrem Projektverzeichnis aus, um Docker Compose zu starten:

docker-compose up -d

4. Überwachen Sie die Aktualisierungen

Watchtower wird nun automatisch nach Updates für Ihre Docker-Container suchen und diese aktualisieren. Sie können die Protokolle überwachen, um den Fortschritt zu überprüfen:

docker logs -f <container_name>

Ersetzen Sie <container_name> durch den Namen Ihres Watchtower-Containers.

Hinweis

Stellen Sie sicher, dass Ihre Container mit einem latest-Tag oder einer bestimmten Version getaggt sind, damit Watchtower weiß, welche Version heruntergeladen werden soll.

Quellen

https://containrrr.dev/watchtower/

https://github.com/containrrr/watchtower

https://goneuland.de/docker-images-automatisiert-aktualisieren-mit-watchtower