---
title: Einrichten von Watchtower in Docker Compose
description: 
published: true
date: 2024-02-10T22:52:37.490Z
tags: 
editor: markdown
dateCreated: 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.

5.  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.

- Docker Installation: [Docker Installationsanleitung](https://docs.docker.com/get-docker/)
- Docker Compose Installation: [Docker Compose Installationsanleitung](https://docs.docker.com/compose/install/)
- Nginx Reverse Proxy Installation

## Schritte

### 1. Docker Compose Datei erstellen
Erstellen Sie eine `docker-compose.yml`-Datei in Ihrem Projektverzeichnis. Hier ist ein einfaches Beispiel:

```yaml
~~~
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:

```bash
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:

```bash
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