Synology: Docker Container automatisch aktualisieren mit Watchtower


WatchTower für Docker Container Aktualisierungen

Hauptsächlich nutze ich mein Synology NAS DS1019+ (kaufen) für Plex und Anwendungen mit Docker. Die Docker-Container enthalten die komplette Anwendung den Minecraft-Server. Um die Anwendungen zu aktualisieren, muss der Docker Container aktualisiert werden.

So aktualisiert man den Docker Container manuell.

Synology Docker Container manuell aktualisieren

Wenn man nur sehr selten seinen Docker Container aktualisieren muss, dann kann man dies wie folgt per Hand erledigen.

  1. Docker im DSM starten
  2. In der Registry die aktuelle Version des Images runterladen.
  3. Vorhandenen Container nun stoppen
  4. Unter „Action“ nun „Clear“ auswählen und bestätigen
  5. Container starten.

Es bleiben alle Einstellungen des Containers erhalten. Solange die Daten per Volume extern auf dem NAS gemountet sind, bleiben diese ebenfalls erhalten. Dieser Prozess ist bei mehr als drei Containern recht lästig. Es geht auch einfacher.

Synology Docker Container automatisch aktualisieren

Watchtower ist ein Docker-Container, der Docker-Container aktualisieren kann. Ich nutze dazu das Docker Image containrrr/watchtower. Für die einfache Einrichtung befolgt man diese Schritte:

  1. Image containrrr/watchtower der Docker Registry runtergeladen.
  2. root-Zugriff per Shell auf das Synology NAS anlegen
  3. Auf Shell folgenden Code ausführen:
docker run -d --network host --name watchtower-once -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower:latest --cleanup --include-stopped --run-once

Nun werden einmalig alle Docker-Container aktualisiert. Der dafür angelegte Container läuft einmal durch und ist danach ausgeschaltet in der Liste der Container in der Synology Docker Applikation zu finden. Nun kann man ihn manuell immer wieder bei Bedarf starten oder per Synology Task Scheduler zu bestimmten Zeiten laufen lassen. Der Befehl für den Task Scheduler ist dann folgender:

docker start watchtower-once -a

Watchtower permanent laufen lassen

Alternativ kann man auch den Scheduler in Watchtower selber nutzen. Wenn man ihn immer mittwoch morgen um 7 Uhr starten möchte, dann gibt man folgenden Befehl auf der Shell ein:

docker run -e "TZ=Europe/Berlin" -d --restart unless-stopped --network host --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --cleanup --include-stopped --schedule "0 7 * * 3"

Wichtig ist hierbei die Timezone auf „Europe/Berlin“ zu stellen, da man sonst einen Versatz von 2 Stunden hat. Zusätzlich wird der Container nicht beendet, sondern immer wieder neugestartet. Auch wenn er mal abgestürzt ist oder das NAS neugestartet wurde. Der letzte Parameter nutzt die cron-Syntax für das Planen des Tasks.

Das DS1019+ (kaufen) mit Docker-Unterstützung

Synology als Docker Server

Mit diesem Setup ist ein Synology NAS ein echter Anwendungsserver. Docker-Unterstützung bekommt man schon für wenig Geld mit dem DS218+ (kaufen). Es muss nicht immer das teure DS1019+ (kaufen) sein. Für mehr Geschwindigkeit kann man noch über eine SSD im Synology NAS nachdenken.


Beitrag veröffentlicht

in

von

Schlagwörter:

Kommentare

23 Antworten zu „Synology: Docker Container automatisch aktualisieren mit Watchtower“

  1. Avatar von Gerry
    Gerry

    Bei mir stoppte der Container nicht mehr nach dem Start. Fehlt da beim docker-Kommando zum Start zu einer bestimmten Zeit nicht ein „–run-once“ zum beenden?

    1. Avatar von Marc
      Marc

      Der soll doch bitte immer laufen und immer weiter aktualisieren

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert