Montag, 15. November 2021

Podman Container als systemd-Dienste automatisch starten

Hat man eine Applikation in einen Container verpackt und kann diese erfolgreich mit podman laufen lassen, soll diese vermutlich auch bei einem Neustart des Hosts automatisch gestartet werden.
Podman liefert dazu die Werkzeuge, um die Systemd-Service-Units zu generieren.

In dem Beispiel betreibe ich einen Container mit dem Namen App1. Mit dem Kommando:

podman generate systemd --name App1 --files --new

[--name Es wird der Name des Containers verwendet und nicht die Container-ID
--files Die Ausgabe erfolgt in Dateien, statt auf STDOUT]

wird die Service-Unit-Datei im lokalen Verzeichnis erstellt:

container-App1.service

Es ist zwingend nötig die Datei in sein Homeverzeichnis unter .config/systemd/user/ zu kopieren:

cp conatiner-App 1.service ~USER/.config/systemd/user/

Bevor nun mit systemctl der Container gestartet wrid, muss sichergestellt sein, dass der ursprüngliche Container gestoppt ist.

podman stop App1

Auch das Container Image darf nicht mehr vorhanden sein:

podman rm App1

Ab jetzt kann der Container mit den systemd-Tools administriert werden:

systemctl --user daemon-reload
systemctl --user start container-App1
systemctl --user enable container-App1

Damit der Service nun auch gestartet werden kann, wenn der User nicht eingeloggt ist, muss noch folgendes Kommando ausgeführt werden:

loginctl enable-linger USERNAME

Der Dienst kann nun mit systemctl verwaltet werden und wird bei einem Rechnerneustart automatisch gestartet.


Keine Kommentare:

Kommentar veröffentlichen

Proxmox Memory Problem mit WIN2012 und SQL Server

 In meinen Kundenumgebungen beobachte ich eine sehr hohe Speicherauslastung bei Microsoft SQL Servern. Der Durchschnitt liegt bei >90% Sp...