Podman ist eine Container-Engine für Linux (und über virtuelle Maschinen auch für macOS und Windows), die ohne einen dauerhaft laufenden Hintergrunddienst auskommt. Sie ist von Red Hat initiiert, unter der Apache-2.0-Lizenz veröffentlicht und gilt als kompatible Alternative zu Docker.
Zwei Kerneigenschaften: daemonlos und rootless
- Daemonlos: Es gibt keinen zentralen Dienst. Jeder
podman-Aufruf startet einen kurzlebigen Prozess, der den Container überfork/execals Kindprozess anlegt. Fällt die Engine aus, laufen die Container weiter; ein Neustart des Daemons ist nicht nötig. - Rootless: Container lassen sich als normaler Benutzer betreiben. Dafür nutzt Podman User-Namespaces: Der Benutzer erhält eine eigene ID-Zuordnung, sodass root im Container dem eigenen Benutzer auf dem Host entspricht. Ein Ausbruch aus dem Container trifft damit keine Root-Rechte mehr.
Bewusst anders gelöst ist der Start beim Systemboot: Ohne Daemon braucht es eine andere Instanz. Podman nutzt dafür die Nutzer-systemd-Instanz mit systemctl --user und der Option --log-driver journald; podman generate systemd bzw. in neuen Versionen Quadlet-Unit-Dateien erzeugen die passenden Units.
Pods – das Plus gegenüber Docker
Podman kennt das Konzept des Pod, entlehnt aus Kubernetes: mehrere Container, die sich einen Netzwerk-Namensraum teilen. Ein Webserver und ein Log-Sidecar im selben Pod erreichen sich über localhost. Aus einem laufenden Pod lässt sich mit podman generate kube eine YAML-Datei erzeugen, die in einem Kubernetes-Cluster angewendet werden kann – umgekehrt nimmt podman play kube solche Dateien an. Das macht Podman zum praktischen Vorstufen-Werkzeug für Kubernetes-Manifeste.
Kompatibilität und Werkzeuge
podman run -d --name web -p 8080:80 docker.io/library/nginx:alpine
podman ps
podman logs web
podman exec -it web /bin/sh
podman pod create --name app -p 8080:80
podman run -d --pod app nginx
podman generate kube app > app.yaml
# Images bauen mit dem Dockerfile-Format
podman build -t meine-app:1.0 .
Die Kommandozeile ist weitgehend die von Docker: alias docker=podman funktioniert in vielen Fällen. Die Werkzeugkette ist modular aufgebaut – buildah baut Images, skopeo kopiert sie zwischen Registries, crun führt sie aus. Alle arbeiten am gleichen Imagespeicher der gewählten Registry.
Wann Podman die bessere Wahl ist
Rootless-Betrieb, keine Daemon-Abhängigkeit und die systemd-Integration machen Podman besonders attraktiv für Mehrbenutzersysteme, Sicherheitsanforderungen und Umgebungen ohne Orchestrierung. Wer viele Tools aus dem Docker-Umfeld nutzt (Compose, Desktop, Testcontainers), prüft die Kompatibilität vorher – podman-compose und docker-compose decken inzwischen das meiste ab, aber nicht jedes Detail.
Verwandte Grundlagen: Container, Docker, Dockerfile, OCI-Standard.