this post was submitted on 27 Oct 2025
235 points (98.8% liked)

Linux

10053 readers
742 users here now

A community for everything relating to the GNU/Linux operating system (except the memes!)

Also, check out:

Original icon base courtesy of lewing@isc.tamu.edu and The GIMP

founded 2 years ago
MODERATORS
 

Let’s walk through what Podman is and how to use it as a Docker alternative on Linux. Expect a straightforward guide on installing Podman, running containers with it, and understanding the basics.

top 44 comments
sorted by: hot top controversial new old
[–] MalReynolds@piefed.social 58 points 2 weeks ago* (last edited 2 weeks ago) (3 children)

Podman is great, but I only found it useful after learning quadlets and how to use podlet to generate quadlets (or quadlet pods) from dockerfiles. Now all my containers run with nice systemd commands in rootless podman containers instead of rooted dockerfiles (coz docker requires root unless you jump through hoops, when I started you couldn't). Quadlet syntax is so much cleaner than docker too.

[–] illusionist@lemmy.zip 23 points 1 week ago (1 children)

You can also just use podman compose without learning a new system and just use published compose files directly.

rootless docker isn't too difficult (anymore). I wouldn't change a running system but for a new system it's always podman.

[–] victorz@lemmy.world 12 points 1 week ago* (last edited 1 week ago)

I wonder why someone down-voted you. I wish people would contribute to the discussion rather than down vote sometimes.

[–] SinTan1729@programming.dev 6 points 1 week ago (1 children)

I like quadlets, but I wish podlet could handle translating external networks. Right now, it just fails, and needs manual intervention. Also, afaik, there's no way to preserve comments when translating.

For me, it's the opposite. I vastly prefer the compose syntax. In general, I guess I prefer yaml based syntax to toml or json based ones. It's just more readable due to the indentation.

[–] MalReynolds@piefed.social 5 points 1 week ago (1 children)

but I wish podlet could handle translating external networks. Right now, it just fails, and needs manual intervention. Also, afaik, there’s no way to preserve comments when translating.

Yeah, valid, it always needs an eye on the output, but it gets you at least 90+% of the way, often 100%.

I like that the syntax is systemd derived, YMMV I guess.

[–] lastweakness@lemmy.world 1 points 1 week ago

I like that the syntax is systemd derived, YMMV I guess.

I don't "like" it over YAML, but I like that I can use systemd specifiers.

[–] w3ird_sloth@lemmy.world 1 points 1 week ago

Quadlets 😎

[–] potatoguy@lemmy.eco.br 38 points 2 weeks ago (1 children)

Podman is amazing, I'm using it when I can. Sometimes some distros ship an older version and can cause problems, but on a newer version I don't see the reason to use docker ever again.

[–] victorz@lemmy.world 10 points 1 week ago (1 children)

What specifically do you like about it that makes you prefer it over docker? 🙂

[–] potatoguy@lemmy.eco.br 8 points 1 week ago (1 children)

No root needed, so i can use it at my job, no daemon, so when something crashes the docker compose don't come back to life wasting 500% CPU with 3 trillion services on the background, also support for kubernetes yaml is nice too.

Azure eventhubs simulator doesn't work on it, but i consider that a plus hahaha.

Over all, some nice features, like in the other comment said, systemd services, and not messing with my system configs are a definitive plus for me.

[–] victorz@lemmy.world 5 points 1 week ago

Cool fam, thanks for sharing!

[–] troed@fedia.io 19 points 2 weeks ago (2 children)

Serious question: I've been running rootless Docker since it became possible. In what way is it limited compared to using Podman?

[–] Botzo@lemmy.world 25 points 2 weeks ago (1 children)

Nothing really critical.

Differences from where I'm at

  • docker doesn't have native systemd integration ("quadlets")
  • docker needs a daemon running
  • podman has pods (like kubernetes) which are great for isolation of complex services
  • you can run podman containers with kubernetes yaml
[–] Botzo@lemmy.world 12 points 2 weeks ago

Oh, and I've found SELinux easier to handle with podman, but that might be just more experience now.

[–] balsoft@lemmy.ml 8 points 2 weeks ago

Apart from the other comment: rootless podman is easier to set up (there's basically no set up needed).

[–] WormFood@lemmy.world 9 points 1 week ago (3 children)

I'm confused at all these comments saying podman is hard to use, I used it a bunch last year and found it a drop in replacement for docker (though I didn't set it up).

[–] sirico@feddit.uk 3 points 1 week ago

Different==hard

I just set up a server running centos that has podman pre installed and I couldn't get it to work without installing additional packages and following guides.

[–] Auli@lemmy.ca 1 points 1 week ago (1 children)

It's not. I mean you could use podman compose but it's no longer developed.

[–] T4V0@lemmy.world 3 points 1 week ago

It's not being developed? From their repo it looks like it's still being worked on.

[–] Evotech@lemmy.world 9 points 1 week ago (2 children)

Docker compose is so nice though

[–] T4V0@lemmy.world 11 points 1 week ago (1 children)

You can use docker compose with podman, or use podman compose.

[–] princessnorah@lemmy.blahaj.zone 6 points 1 week ago* (last edited 1 week ago) (1 children)

Yeah, compose has been an open standard for a while now, that's why docker started* pushing you to rename your files to compose.yaml rather than docker-compose.yaml.

[–] standarduser@lemmy.dbzer0.com 2 points 1 week ago

That’s really cool of docker to do

[–] fruitycoder@sh.itjust.works 2 points 1 week ago

If you need a collection of containers run it as a k8s pod.

Trying to do a small thing in k3s is super simple. Trying to do a big thing in docker compose is awful.

[–] trevor@lemmy.blahaj.zone 8 points 1 week ago (1 children)

Docker works. Podman requires a ton of workarounds and wastes my time. I hope it gets good one day, but I'm not reverting to using systemd to manage containers.

[–] entwine@programming.dev 9 points 1 week ago (1 children)

You sound like you work at us-east-1

[–] Scribbd@feddit.nl 1 points 1 week ago

I know this is a joke. But the reason I cannot have podman is because the tooling for us-east-1 will simply not work with podman (on my pc).

[–] zr0@lemmy.dbzer0.com 6 points 1 week ago (2 children)

podman missed the chance to grow, by making it very difficult to configure and use it. The way quadlets work is just such a struggle, if you have been using compose for years. And no, I don’t want to use podman compose, as I can just use rootless docker instead.

[–] entwine@programming.dev 10 points 1 week ago (1 children)

The way quadlets work is just such a struggle, if you have been using compose for years

Learning new things is hard, sure, but quadlets are not that complex. Take a few hours to sit down and read through the manual or a tutorial, and you'll find they're easier to maintain, write, and deploy.

Hot take: Docker compose is poorly designed, and very little thought went into the deployment side. It only 'won' because it was there first, and bad habits are tough to break.

[–] zr0@lemmy.dbzer0.com 1 points 1 week ago

Fully agree with the compose part, as it has some weird shit in it, too. I gave podman with quadlets many chances and after a while, I always switched back to docker for some reason

[–] witten@lemmy.world 4 points 1 week ago (1 children)

Docker Compose works great with Podman.

[–] zr0@lemmy.dbzer0.com 0 points 1 week ago (2 children)

It supposedly does. But why should I use podman then?

[–] fruitycoder@sh.itjust.works 2 points 1 week ago (1 children)

Native system packages and more features as well.

[–] zr0@lemmy.dbzer0.com 2 points 1 week ago (1 children)

Okay, now I am curious. Can you please explain what exactly you mean? Like, what do you mean by “Native system packages”? And what features would you miss with docker? Thanks!

[–] fruitycoder@sh.itjust.works 2 points 1 week ago

Sure! Docker CE needs you to add their own repo for deb or RPM based distros. Podman is available on all of the big distros main repos.

The biggest feature to me is this one https://docs.podman.io/en/latest/markdown/podman-kube.1.html

Podman and docker are good getting started with container steps (nerdctl is also awesome), but just a starting point with k8s being the goal for almost every service and job deployment to me.

[–] witten@lemmy.world 2 points 1 week ago

The main reasons for me are security, reliability, and one less daemon. But you do you.

[–] thingsiplay@beehaw.org 6 points 1 week ago

I just released my first cross compiling app on Linux and Windows, using Podman. This is so great.

[–] nixus@anarchist.nexus 5 points 1 week ago (1 children)

I've been thinking about using this to replace my self-hosted docker repo. Does anyone know how well this works with hosting a docker repo?

[–] entwine@programming.dev 6 points 1 week ago

Afaik it works perfectly. Podman can use Docker hub with zero issues, and is sometimes configured as the default repo for fetching images without a qualified name. Conversely, I think Docker works perfectly with the Podman ecosystem repos too (like quay.io)

[–] Railcar8095@lemmy.world 4 points 1 week ago (2 children)

I am struggling to access a smb server with podman. I have it mounted on the host using fstab, but many podman containers refuse to access with permission issues, even setting uid:gid to 1000:1000 and giving ownership with unshare.

Any hint? I know there's not much detail, but I think I'm missing something fundamental

[–] entwine@programming.dev 7 points 1 week ago

Check out this blog post which details how uids work within rootless containers. It's useful troubleshooting knowledge to have.

[–] FooBarrington@lemmy.world 6 points 1 week ago (1 children)

Could be an SELinux issue. Look up mounting with the :z/:Z option.

[–] Railcar8095@lemmy.world 4 points 1 week ago

Tried that :(.

Seems to be something about the smb share itself, because of I point to a folder on the drive it works, only fails when it's a mounted samba share.

I'll need to make a post with ask the details, thanks in any case!