Podman: Unterschied zwischen den Versionen
Rkr (Diskussion | Beiträge) |
Rkr (Diskussion | Beiträge) |
||
(12 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
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 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. | ||
Es geht hier vor allem um Änderungen und Besonderheiten von Podman, wenn man damit Docker ersetzen möchte. | |||
== Artikel == | |||
*siehe c't 21/19 S.130 | |||
*siehe c't 15/22 S.168 - Grundlagen zu "rootless" , https://ct.de/y5m5 | |||
== Management von Images und Containern == | == Management von Images und Containern == | ||
Zeile 40: | Zeile 44: | ||
Ein Podman-Socket kann dann rückwärts-kompatibel zu Docker so in den Container hinein gereicht werden: | Ein Podman-Socket kann dann rückwärts-kompatibel zu Docker so in den Container hinein gereicht werden: | ||
<syntaxhighlight lang="bash"> | |||
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 | |||
</syntaxhighlight> | |||
Weblinks: | Weblinks: | ||
Zeile 46: | Zeile 56: | ||
*https://middlewaretechnologies.in/2020/11/how-to-use-podman-rest-api-service-to-query-and-manage-linux-containers-system.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/ | *https://liquidat.wordpress.com/2020/04/20/howto-using-the-new-podman-api/ | ||
== Login Shell == | |||
*[https://www.heise.de/ratgeber/Podman-Container-als-Login-Shell-mit-podmansh-9299111.html heise+ | Podman-Container als Login-Shell mit podmansh], mit oder ohne Änderungsrechten, c't 23/23 S.156, https://ct.de/ygy9 | |||
== Tools == | |||
*[https://podman-desktop.io/ Podman Desktop] | |||
**c't 13/23 S.138 [[ct:yrk3]] | |||
***[https://www.heise.de/news/Leichter-mit-Containern-entwickeln-Podman-Desktop-1-0-ist-fertig-9065360.html Leichter mit Containern entwickeln: Podman Desktop 1.0 ist fertig] | |||
== Siehe auch == | == Siehe auch == |
Version vom 19. Oktober 2023, 16:07 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.
Es geht hier vor allem um Änderungen und Besonderheiten von Podman, wenn man damit Docker ersetzen möchte.
Artikel
- siehe c't 21/19 S.130
- siehe c't 15/22 S.168 - Grundlagen zu "rootless" , https://ct.de/y5m5
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 für GitLab
podman run --detach \
--hostname gitlab.kruedewagen.de \
--publish 9443:9443 --publish 9080:9080 --publish 9022:22 \
--name gitlab \
--restart always \
--volume /srv/gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce: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:
- 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:
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
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/
Login Shell
- heise+ | Podman-Container als Login-Shell mit podmansh, mit oder ohne Änderungsrechten, c't 23/23 S.156, https://ct.de/ygy9