Podman
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 das so (Beispiel GitLab):
podman generate systemd gitlab > /etc/systemd/system/gitlab.service
systemctl daemon-reload
systemctl enable gitlab
systemctl start gitlab
Weblinks:
- https://documentation.suse.com/sles/15-SP2/single-html/SLES-container/index.html
- https://www.tutorialworks.com/podman-systemd/
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:
- https://docs.podman.io/en/latest/markdown/podman-system-service.1.html
- https://middlewaretechnologies.in/2020/11/how-to-use-podman-rest-api-service-to-query-and-manage-linux-containers-system.html
- https://liquidat.wordpress.com/2020/04/20/howto-using-the-new-podman-api/