Docker Container automatisch aktualisieren

Heute mal ein ein kleiner Beitrag zum Thema Docker.

Docker läuft bei mir seit… lass mich kurz überlegen … gefühlt 10 Jahren auf der Synology DS415+. Die hatte ich Anfang 2018 zu 8GB RAM verholfen und dann ging’s auch schon los mit den ersten Containern.

Mittlerweile sind da Container von NEXTCLOUD, AdGuard, PiHole, HomeBridge, InfluxDB, Grafana etc. am laufen. Und wenn man so einige Container am laufen hat und die auch noch so konfiguriert hat, dass die config’s alle ausserhalb des eigentlichen Docker-Container beheimatet sind, was liegt dann näher als es sich so einfach wie möglich zu machen und die Aktualisierung der laufenden Images nicht mehr händisch zu machen.

Und hier kommt ein Docker-Image ins Spiel, das diese Aufgabe für uns erledigen soll. Nämlich WATCHTOWER.

Watchtower ist ein DockerContainer der alle anderen laufenden Container überwacht und in einem eingestellten Intervall nach den jeweiligen Aktualisierungen sucht.

Wird eine aktuellere Version auf hub.docker.com gefunden, wird automatisch ein Pull vollzogen, der Container gestoppt,die neue Containerversion installiert und der neue Container wieder gestartet.

Somit hat man immer automatisch die neueste Version des Containers am laufen.

Auf der Synology muss dafür auf der Console via SSH folgender Befehl ausgeführt werden:

$ docker run -d --name watchtower -e TZ='Europe/Berlin' -e WATCHTOWER_POLL_INTERVALL=3600 -e WATCHTOWER_CLEANUP='true' -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower <namen der container, getrennt durch leerzeichen>

Dies legt einen Container namens ‚watchtower‘ an und startet diesen mit folgenden ENV-Variablen:

  • TZ = Berlin/Europe
  • WATCHTOWER_POLL_INTERVALL = 3600
  • WATCHTOWER_CLEANUP = true
  1. TZ = TimeZone
  2. WATCHTOWER_POLL_INTERVALL in Sekunden -> hier jede Stunde
  3. WATCHTOWER_CLEANUP = das alte Image wird automatisch gelöscht

hier sollte vorher bei den laufenden DockerContainer’n sichergestellt sein, dass die Konfiguration ausserhalb des Containers gespeichert ist, sonst ist sie ebenfalls gelöscht.

Bei Datenbank-Containern sollten die Daten natürlich auch auf dem Host und nicht im Container gespeichert sein.

In der Passage <namen der container, getrennt durch leerzeichen> gibt man die Container an, die Watchtower überwachen soll. Bleibt diese leer, werden alle laufenden Container überwacht und dann ggf. geupdated !!!!

Für diejenigen unter euch, die nicht den Weg via SSH gehen wollen, empfiehlt sie die ENVIRONMENT-Variable DOCKER_HOST.

-e DOCKER_HOST='unix:///var/run/docker.sock'

Dies kann so in der SSH-Session mit angegeben werden, dann taucht diese ENVIRONMENT-Variable auch mit in DOCKER in der Synology-WebGUI auf.

Beim Einrichten des Watchtower Containers via WebGUI der Synology oder Portainer.io (bei Bedarf schreibe ich hierzu auch gerne mal eine Anleitung 🙂 ), müssen die ENV-Variablen nur eingepflegt werden.

Jetzt kann der Watchtower Container gestartet werden und … happy automatically updating 🙂

Für Fragen steht wie immer der Kommentarbereich zur freien Verfügung .

5 1 vote
Article Rating

You may also like...

Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x