From what I have seen, rootless podman seems to take more effort (even if marginal) than rootful one. I want to make a more informed decision for the containers, so I would like to ask.
- What is a rootless podman good for? How much does it help in terms of security, and does it have other benefits?
- One of the benefits commonly mentioned is for when container is breached. Then, running container on sudo-capable user would give no security benefits. Does it mean I should run podman services on a non-privileged user?
Thank you!
One of the main advantage of podman is that, it respects the firewall rules. Docker don’t do that. Also having rootless podman means if somehow the container went rogue, it cannot have access to your root directory and perform malicious actions.
Also podman is a drop in replacement for docker. It does not need much configurations to setup. If you need compose, you might need to install podman-compose as well.
A rootless container is good for security.
A lifetime old basic rule is never run anything as root, not even your podman :)
I only ever use rootless podman jn my system and I fond it pretty easy to actually run: zero effort whatsoever.
Why you say it’s complicated?
Yes I always create one unprivileged user (not even in the sudoers or wheel group ofc) for every service I containerize. And create a dedicated network for the service too.
It only takes a few lines in a normal docker compose yaml.
Also I use docker compose on podman, yes docker compose not podman compose.
Edit2: refer to this post of mine on how installed immich on rootless podman https://wiki.gardiol.org/doku.php?id=services%3Aimmich as you can see, the most complex part is… Useradd & mkdir LOL
Edit: also podman play nice with iptables and nft (which should be always preferred nowadays) instead docker can mess your system good, and don’t work with nft tables, unless quirks quirks…
Needing to deal with the services for startup for every single compose stack seems like such a pain to me, that’s one of the big reasons I haven’t switched.
Nothing stops you to run them all from the same unprivileged user and start them all at once with a single command.
Set once and forget style.
Put them in a pod and it’s just
systemctl --user start <name>-podorsudo systemctl start <name>-pod. A pod is basically a compose file, but split across multiple files instead of chunks of yaml.



