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 über fork/exec als 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.