- Quadlet ist ein Tool, mit dem sich Podman-Container als systemd-Dienste ausführen lassen. Das ist nützlich, um Container nach einem Serverneustart automatisch im Hintergrund zu starten.
- Bisher wurde dafür der Befehl
podman generate systemd verwendet, inzwischen wird jedoch die Migration zu Quadlet empfohlen.
Bisherige Methode
- Man musste einen Container erstellen, anschließend eine systemd-Service-Datei erzeugen, diese in das passende Verzeichnis verschieben und den Dienst aktivieren.
- Dieser Ablauf war umständlich, die Befehle lang und repetitiv, und oft mussten Dateien manuell angepasst werden.
Probleme
- Die bisherige Methode war komplex und wenig flexibel.
- Verglichen mit dem Komfort von Docker Compose war viel Handarbeit nötig.
Quadlet
- Mit Quadlet lassen sich Container über
.container-Dateien verwalten.
- Im Abschnitt
[Container] können Image, Ports, Volumes und Umgebungsvariablen festgelegt werden.
- Im Abschnitt
[Service] lässt sich die Neustart-Richtlinie des Containers definieren.
- Im Abschnitt
[Install] kann der automatische Start beim Booten konfiguriert werden.
Was ist besser?
- Alle Einstellungen lassen sich in einer einzigen Datei verwalten, und dabei stehen alle Optionen von systemd zur Verfügung.
- Das Schreiben von Konfigurationsdateien ist einfacher als das Schreiben von Skripten.
- Abhängigkeiten lassen sich leicht verwalten.
Abhängigkeiten
- Wenn ein App-Container von einem Datenbank-Container abhängt, können im Abschnitt
[Unit] mit den Optionen Requires und After entsprechende Abhängigkeiten definiert werden.
Zu viele Dateien?
- Eine Aufteilung auf mehrere Dateien kann die Komplexität verringern.
- Zusammengehörige Dateien lassen sich gruppiert verwalten.
Image-Updates
- Mit der Option
AutoUpdate=registry können per Befehl podman auto-update Images aktualisiert und Container neu gestartet werden.
- Die Verwendung des Tags
latest kann riskant sein, daher werden konkrete Versions-Tags empfohlen.
Zu podman-compose
podman-compose ist ein Skript, das Compose-Dateien in Podman und systemd übersetzt, eignet sich jedoch nicht gut als langfristige Alternative.
- Quadlet passt besser zum daemonlosen Design von Podman.
Weiterführendes Material
- Für ein tieferes Verständnis von Quadlet empfiehlt es sich, die Manpage
podman-systemd.unit zu lesen.
- Mit Quadlet lassen sich nicht nur Container, sondern auch Pods, Netzwerke und Volumes verwalten.
- Wer mit dem Schreiben von systemd-Unit-Dateien nicht vertraut ist, sollte auch die Manpages
systemd.unit und systemd.service konsultieren.
podlet ist ein Tool, das beim Erzeugen von Quadlet-Dateien aus Podman-Befehlen oder Compose-Dateien helfen kann.
1 Kommentare
Hacker-News-Kommentare
Quadlet ist eine Alternative zu Docker Compose und nützlich, um „voneinander abhängige Container in einer produktionsähnlichen Umgebung auszuführen“. Für Entwicklungsumgebungen ist es jedoch weniger nützlich.
~/.config/containers/systemdabgelegt werden, wodurch eine Trennung vom Projekt schwierig ist.Jemand entdeckte Quadlet, baute darauf basierend mit Atomic OS und rootlosem Quadlet ein Homelab auf und empfiehlt es nachdrücklich.
Quadlet ist eines der besten Werkzeuge aus dem Podman-Umfeld und wird allen empfohlen, die sich für containerbasierte Workloads interessieren.
Wegen des Komforts von Docker Compose zögern viele, von Docker zu Podman zu wechseln.
Es wurde erwähnt, dass Podman-Compose „nicht gepflegt“ sei, aber Podlet befindet sich in einem ähnlichen Zustand.
Es ist unbequem, dass Podmans Upstream keine Repositories für Debian/Ubuntu bereitstellt.
Jemand nutzt openSUSE MicroOS, um Podman-Container unter systemd/Quadlet auszuführen, und ist mit der aktuellen Konfiguration zufrieden.
Die Integration von systemd und Podman gefällt.
Es ist interessant, dass Quadlet es auf die Startseite von Hacker News geschafft hat.
Quadlet ermöglicht es, Container wie gewöhnliche Systemdienste zu verwenden.