Docker-Container mit Watchtower aktuell halten

Es kann sehr nervig seine eigene kleine Docker-Infrastruktur stets aktuell zu halten. Man muss händisch alle aktiven Images pullen, die laufenden Container stoppen, löschen und wieder starten. Eine sehr monotone - und dadurch sicherlich auch fehleranfällige - Arbeit. Eine einfache Möglichkeit diese Arbeit zu automatisieren ist die Verwendung von Watchtower.

Watchtower kommt selbstverständlich ebenfalls als Docker-Image daher und braucht lediglich Zugriff auf den Docker-Socket des Hosts:

docker run -d \
    --name watchtower \
    -v /var/run/docker.sock:/var/run/docker.sock \
    containrrr/watchtower

Watchtower prüft dann periodisch für jeden laufenden Container die Docker-Registry auf neue Versionen des jeweiligen Images. Ist eine neue Version vorhanden, wird das Image aktualisiert und der Container mit diesem neugestartet.

Container selektieren

Per Default überwacht Watchtower alle laufende Container. Möchte man jedoch kontrollieren, ob ein Container automatisch aktualisiert wird, kann mit der --label-enable-Flag die automatische Aktualisierung aller Container deaktiviert werden.

docker run -d \
    --name watchtower \
    -v /var/run/docker.sock:/var/run/docker.sock \
    containrrr/watchtower --label-enable

Es werden nun nur noch Container mit com.centurylinklabs.watchtower.enable=true-Label überwacht:

docker run -d \
  --label=com.centurylinklabs.watchtower.enable=true \
  hello-world

Weitere Features

Zusätzlich zu den "Core"-Features lassen sich bspw. Notifications einrichten, die getriggert werden, wenn für ein Image eine neue Version vorliegt. Dies kann sinnvoll sein, wenn man nicht möchte, dass Watchtower die Images und Container automatisch aktualisiert. So konfiguriert man Watchtower im "Monitor Only"-Mode, lässt sich bei einem möglichen Update informieren und legt dann wieder selbst Hand an.

Auch die Nutzung von privaten Registries sind kein Problem und werden out-of-the-box unterstützt.

Weitere Features und Konfigurationsmöglichkeiten können der Dokumentation entnommen werden.

Fazit

Sicherlich ist Watchtower nicht die eleganteste und enterprise-igste Lösung für das gegebene Problem, aber es ist eine sehr einfache und das ist manchmal halt auch vollkommen ausreichend.

(Titelbild von Alejandro Pinto)

No Comments Yet