Alles schön verpackt: Meine Docker-Sammlung

Eine gut strukturierte Docker-Sammlung vereinfacht das Ausprobieren und Betreiben verschiedenster Server-Dienste enorm. Vom Monitoring bis zum Mail-Setup lassen sich Anwendungen isoliert aufsetzen. Welche Dienste sich in der Praxis besonders bewährt haben, zeigt dieser Überblick.

Auf meinem Server betreibe ich eine Reihe von Anwendungen für meinen privaten Gebrauch. Nach anfänglicher Lernkurve ist jetzt alles in Docker-Container verpackt. Das hat für mich den Vorteil, dass ich Aktualisierungen sehr leicht einspielen kann und fast alle Nutzdaten auf meinem Server konzentriert unter einem Pfad liegen. Das macht die Datensicherung einfach.

Aktuell betreibe ich:

Die Docker Compose Konfigurationen findest du hier:

https://git.software-berater.net/christian/dockerfiles

Ich versuche, die Konfigurationen gleichförmig aufzubauen, was nicht zuletzt für mich den Merkaufwand reduziert. (Von wegen Kopf wie Sieb und so…) Also

  1. liegen alle Anwendungen in jeweils einem eigenen Unterverzeichnis
  2. verwende ich .env Dateien zur Ablage von vertraulichen Daten wie Passworten oä
  3. verwende ich ein systemd Template um die Anwendungen als Systemdienst zu etablieren

Die Anwendungen werden inzwischen durch Traefik nach außen bekannt gemacht, siehe dazu der neue Blogpost.

Automatische Neustarts

Einige Dienste (wie diese Webseite) sollen neu gestartet werden, wenn sich das Image ändert. Den Neustart ereiche ich mit einem systemd Watcher, der eine Datei auf dem Host beobachtet, welche durch den build-Prozess erneuert wird. Verändert sich die beobachtete Datei, so startet der Watcher den Service neu.

Der Watcher besteht aus einer watcher Unit und einer path Unit. Beide müssen für sich aktiviert und gestartet werden, um wirksam zu sein.

systemd watcher-Unit

dc-watcher@.service auf git.software-berater.net

systemd path-Unit

dc-watcher@.path auf git.software-berater.net

Was ist nicht dockerisiert?

Der lokale SMTP/IMAP-Mailserver ist nicht containerisiert. Gerade die SMTP-Binaries werden verwendet, um Nachrichten vom System zu bekommen. Auch wenn es mehr als 1.200 Images für Postfix auf Docker Hub gibt.