2 Punkte von GN⁺ 2025-03-25 | 1 Kommentare | Auf WhatsApp teilen
  • 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

 
GN⁺ 2025-03-25
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.

    • Docker Compose kann Abhängigkeiten wie Datenbanken, Redis und OpenSearch einfach verwalten.
    • Bei Quadlet müssen Dateien in ~/.config/containers/systemd abgelegt werden, wodurch eine Trennung vom Projekt schwierig ist.
    • Viele Entwickler verwenden weiterhin Docker, und um Podman zu nutzen, müssen manuell Konfigurationen ergänzt werden.
    • Es wird eine Alternative zu Docker Compose für die Entwicklung benötigt, aber Quadlet ist dafür nicht geeignet.
  • Jemand entdeckte Quadlet, baute darauf basierend mit Atomic OS und rootlosem Quadlet ein Homelab auf und empfiehlt es nachdrücklich.

    • Man kann systemd-Socket-Aktivierung verwenden, um Traefik automatisch zu aktivieren.
    • In einer rootlosen Konfiguration ist dies die einzige Möglichkeit, die Quell-IP zu erhalten.
  • Quadlet ist eines der besten Werkzeuge aus dem Podman-Umfeld und wird allen empfohlen, die sich für containerbasierte Workloads interessieren.

    • Es ist praktisch, weil sich Container wie Systemdienste behandeln lassen.
    • Wenn man Quadlet als Alternative zu Docker verwendet, ist eine sauberere Konfiguration möglich.
    • Für lokale Entwicklungsumgebungen ist es keine Alternative zu Docker Compose, und auch das Podman-Team zeigt daran kein großes Interesse.
  • Wegen des Komforts von Docker Compose zögern viele, von Docker zu Podman zu wechseln.

    • Quadlet macht es möglich, Podman als Alternative zu Docker Compose zu verwenden.
    • Man wird Docker nicht vermissen und kann die Sicherheit rootlos ausgeführter Container nutzen.
  • Es wurde erwähnt, dass Podman-Compose „nicht gepflegt“ sei, aber Podlet befindet sich in einem ähnlichen Zustand.

    • Podlet unterstützt viele Funktionen von Docker Compose nicht und unterstützt auch nicht das Stapeln mehrerer YAML-Dateien.
  • Es ist unbequem, dass Podmans Upstream keine Repositories für Debian/Ubuntu bereitstellt.

    • Deshalb wurde wieder zu Docker Compose zurückgekehrt.
  • Jemand nutzt openSUSE MicroOS, um Podman-Container unter systemd/Quadlet auszuführen, und ist mit der aktuellen Konfiguration zufrieden.

    • Podman Compose war umständlich in der Nutzung, und Quadlet ist die bessere Wahl.
  • Die Integration von systemd und Podman gefällt.

    • Docker Compose ist weiterhin konkurrenzfähig, und Quadlet kann Projektverzeichnisse komplizierter machen.
  • Es ist interessant, dass Quadlet es auf die Startseite von Hacker News geschafft hat.

    • Mit Kubernetes-YAML ist eine hohe Portabilität möglich.
  • Quadlet ermöglicht es, Container wie gewöhnliche Systemdienste zu verwenden.

    • Die UX rootloser Container passt nicht gut zu diesem Konzept.
    • Es wäre wünschenswert, rootloses Quadlet innerhalb einer Systemsitzung ausführen zu können.