Es gibt einen Moment, an dem der Unterschied zwischen rootful und rootless aufhört, Theorie zu sein. Du bindest ein Verzeichnis deines Projekts in einen Container ein, legst darin als Verwalter eine Datei an — und siehst danach auf dem Rechner nach, wem sie gehört. Bei rootless steht dort deine eigene Kennung. Dieselbe Datei, zwei völlig verschiedene Eigentümer.
Der Unterschied sitzt im Prozessbaum
Docker besteht aus einem Client und einem Hintergrunddienst, der die Arbeit ausführt und herkömmlich mit Administratorrechten läuft; Container sind Kinder dieses Dienstes. Podman verzichtet darauf: Jeder Container wird direkt aus dem Kommando gestartet und bleibt ein Kindprozess deiner Sitzung. Ein abgestürzter Dienst kann keine laufenden Container mitnehmen, weil es ihn nicht gibt. Und zwei Personen auf derselben Maschine sehen einander nicht mehr.
Die Befehle sind dabei absichtlich deckungsgleich — docker run und
podman run nehmen dieselben Argumente. Die Deckungsgleichheit endet erst bei
Dienst und Rechten, und genau dort wird es interessant.
Der Stolperstein steht in zwei Textdateien
Rootless braucht zusätzliche Kennungen, die auf die eigene abgebildet werden —
eingetragen in /etc/subuid und /etc/subgid. Ein Leerzeichen am Zeilenende
lässt den Eintrag stillschweigend ausfallen, und der Container startet mit einer
Meldung, die den Grund nicht verrät. Wer das einmal gesucht hat, sucht es nie
wieder.
Im Netz zahlst du einen kleinen Aufschlag
Ohne Brücke auf dem Rechner läuft der Verkehr über ein Hilfsprogramm. Der Durchsatz sinkt messbar, dafür bleibt die Absenderadresse erhalten — was bei Zugriffsprotokollen und Sperrlisten Fehlersuche spart. Auf dem Arbeitsplatz begrenzt ohnehin fast immer die Anwendung, nicht die Netzwerkschicht.
Mehr dazu im Seminar
Wie du Compose, Devcontainer und einen lokalen Kubernetes-Cluster unter beiden Engines betreibst, zeigt das Modul Lokale Entwicklung mit Docker und Podman — inklusive Video und Kapitelübersicht.