Podman: Unterschied zwischen den Versionen

aus www.kruedewagen.de, Homepage von Ralf und Judith Krüdewagen (Kruedewagen)
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „Diese Seite befasst sich mit '''Podman''', einer Alternative zur Docker-Umgebung, um (Docker-)Images und Container zu managen und Container laufen zu lasse…“)
 
Zeile 17: Zeile 17:
Das automatische Starten eines Containers muss wie ein normaler Service in das Linux-System eingebaut werden, da kein eigener Daemon zur Verfügung steht.
Das automatische Starten eines Containers muss wie ein normaler Service in das Linux-System eingebaut werden, da kein eigener Daemon zur Verfügung steht.


Bei ''systemd'' geht das so (Beispiel [[GitLab]]):
Bei ''systemd'' geht einfach mit einer eingebauten Generator (Beispiel [[GitLab]]):
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
podman generate systemd gitlab > /etc/systemd/system/gitlab.service
podman generate systemd gitlab > /etc/systemd/system/gitlab.service
Zeile 24: Zeile 24:
systemctl start gitlab
systemctl start gitlab
</syntaxhighlight>
</syntaxhighlight>
Achtung: Die ''systemd'' Service-Datei enthält Referenzen zur Container-ID. Daher muss die ''systemd'' Service-Datei nach jedem Wechsel der Container-ID neu erstellt werden (also nach Löschen und Neuerstellung des Containers, z.B. nach Update des Images).


Weblinks:
Weblinks:

Version vom 5. Februar 2022, 15:46 Uhr

Diese Seite befasst sich mit Podman, einer Alternative zur Docker-Umgebung, um (Docker-)Images und Container zu managen und Container laufen zu lassen. Dabei kommt Podman ohne Daemon aus und benötigt daher keine Root-Rechte. Außerdem kann Podman mit Pods (bekannt aus Kubernetes) umgehen.

Diese Seite befasst sich vor allem mit den Änderungen und Besonderheiten von Podman, wenn man damit Docker ersetzen möchte.

Management von Images und Containern

Podman ist fast vollständig befehls-kompatibel zu Docker. Man kann also genau wie bei Docker einen Container starten. Der "docker" Befehl wird nur gegen "podman" ausgetauscht.

Beispiel

podman run -d --name gitlab-runner --restart always \
  -v /srv/gitlab-runner/config:/etc/gitlab-runner \
  -v /run/podman/podman.sock:/var/run/docker.sock \
  gitlab/gitlab-runner:latest

Container bei Systemstart automatisch starten

Das automatische Starten eines Containers muss wie ein normaler Service in das Linux-System eingebaut werden, da kein eigener Daemon zur Verfügung steht.

Bei systemd geht einfach mit einer eingebauten Generator (Beispiel GitLab):

podman generate systemd gitlab > /etc/systemd/system/gitlab.service
systemctl daemon-reload
systemctl enable gitlab
systemctl start gitlab

Achtung: Die systemd Service-Datei enthält Referenzen zur Container-ID. Daher muss die systemd Service-Datei nach jedem Wechsel der Container-ID neu erstellt werden (also nach Löschen und Neuerstellung des Containers, z.B. nach Update des Images).

Weblinks:

Podman API

Wenn Container auf die Podman API zugreifen müssen (z.B. über ein Socket), muss der Podman API Service laufen.

Ein Podman-Socket kann dann rückwärts-kompatibel zu Docker so in den Container hinein gereicht werden:

-v /run/podman/podman.sock:/var/run/docker.sock

Weblinks:

Siehe auch