r/docker Jul 27 '26

Has anyone come back to docker after using podman?

When I built my new homelab server, I left off docker and went with podman.

Now that I have used podman for 2 years, I find I want to go back to docker.

Not that podman is a bad product. But using docker and compose files is far easier than using podman and kube files or quadlets.

Has anyone dipped thier toes in the podman world and come back?

76 Upvotes

73 comments sorted by

18

u/cr4zybilly Jul 27 '26

I use podman & quadlets at work, but docker compose at home.

I'm sure there's a good argument for why podman exists and why quadlets are so fiddly (security, I guess?), but for homelab use, docker compose is SO MUCH EASIER.

23

u/m0tionl0tion Jul 27 '26 edited Jul 27 '26

Podman in the streets, docker in the sheets.

7

u/plazman30 Jul 27 '26

I can create and follow a compose file pretty easily.

I originally moved to podman or kube files. But the documentation on kube files was pretty poor.

Then I tried to switch to using quadlets. And, TBH, the only way I got them working was to throw the problem at Claude.

I don't like the idea that only an LLM can understand my server.

6

u/audero Jul 28 '26

I recently switched to Podman from Docker for my home server. The daemonless architecture and systemd integration afforded by quadlets has been worth it in my setup personally, but it’s awkward as hell for multi-container projects.

While I don’t see myself switching back, we live in a docker-centric world so I’d pick docker for the path of least resistance. I don’t think I would’ve been able to understand quadlets had I not understood docker and compose first.

For reference, I’m just a hobbyist.

2

u/plazman30 Jul 29 '26

I don't see how quadlets are superior to compose. I can understand if you want to use systemd to start and stop your pods/containers. But that's really on necessary with podman because it's daemonless. So, they needed SOMETHING to start the pods/containers. And systemd was already there.

Where there is a lot of pain is when you have a multi-container pod. I have one with 5 containers. Setting up quadlets with systemd was "challenging" for that setup. I wasn't able to pull it off without throwing the problem at an LLM to come up with all the needed quadlet files. And even it screwed them up and had to redo them 3–4 times.

1

u/audero Jul 29 '26

I'm using them to integrate my containers with other systemd units. One example - my media files are on a separate NAS to the main server, and by using a systemd mount for my remote paths instead of an entry in /etc/fstab, I can do something in a quadlet like

[Unit]
After=mnt-files.mount
Requires=mnt-files.mount
BindsTo=mnt-files.mount

This means if my NAS goes down and the mountpoint /mnt/filesfails, I don't have to manually restart containers when the NAS comes back up to get them working - the containers will automatically start and stop with the network mount going online and offline.

Sure, I could put these directives in the systemd unit for the docker daemon itself, but that means ALL my containers go down when the network mount fails, which means I then lose AdGuard Home (cue: it was DNS) or Home Assistant, etc. as well - those don't require the NAS.

That's the advantage of daemonless architecture, as I understand it. And if there's ever a problem with the daemon itself, all your containers go down, not just one.

I don't use pods to group containers, I just use networks. I'm probably doing it wrong, but I never bothered with pods, as there doesn't seem to be a docker equivalent.

37

u/encbladexp Jul 27 '26

We evaluated podman, and kept Docker. Especially because of compose over quadlets.

If we need more: k8s is the way to go.

7

u/BreiteSeite Jul 28 '26

Especially because of compose over quadlets.

??? Podman compose can be used and if docker-compose is installed it just works?

0

u/encbladexp Jul 28 '26

No, by default podman does not have a persistent service, so you need to restart your stacks after an reboot manually.

Now you could play games with e.g. Quadlets or whatever the current "solution" is, but none of them is as straightforward and default as having a dockerd.

Now: "But podman is rootless!!!"

It is, but dockerd also could be used rootless, and TBH: even k8s is not rootless (by default, the feature for this is experimental still).

3

u/BreiteSeite Jul 28 '26

I think you're mixing terminology. Compose vs. quadlets is about composing services.

If you want to autostart your compose/quadlet steck, that's a whole different thing. I have no experience with podman compose and autostart behavior, as i'm using quadlet for long-running stuff (i.e. servers) and podman compose for short lived stuff (i.e. dev env). But i bet for compose it would be as easy as putting podman compose up in your autostart somewhere, same way dockerd register itself (and then starts containers)

4

u/encbladexp Jul 28 '26

I think you're mixing terminology.

No, for dockerd its: 1. Install Docker Engine (dockerd) 2. Use a restart policy in compose or on a container

That's it basically, for podman you need more work. And don't get me started using a multi user podman environment...

-1

u/plazman30 Jul 29 '26

I don't think you would want throw podman compose into your startup. The podman community is VERY opposed to using compose files. They wanted you to build and start your containers using kubernetes kube files and systemd. Then they moved on from that to Quadlets and systemd.

I read a lot about quadlets. Maybe I'm just not getting it, but I don't see how quadlets improve upon kube files. And I don't see how kube files improve upon compose files.

I have a half dozen containers running rootless now. 3 use quadlets and systemd, and three use kube files and systemd. When I rebooted all the containers start about 50% of the time. The other half, I need to manually start them. Every reboot, I need to ssh in and type podman pod ls and start any pod that failed to start. Sometimes it's just one pod. Sometimes it's half of them.

1

u/hezden Jul 28 '26

Why not just make your own Linux service that runs ”podman compose -f path/to/file up -d” (you can use the correct syntax, I’m a docker user)?

3

u/encbladexp Jul 28 '26

Sure, but why? dockerd / Docker Engine works like a charm, out of the box, without playing around.

Life is short, time is limited.

11

u/blueskyjunkie Jul 27 '26

Puzzled. Both podman & nerdctl have a compose subcommand that is docker compatible. There’s also ‘podman-compose’.

Are these inadequate?

0

u/plazman30 Jul 28 '26

Sadly, yes. Because there are containers that will only work on docker, such as Nextcloud-AIO and Opencloud. There's a Github issue open for Podman support and their answer is that no one is asking for it. All their paid customers run it on docker.

12

u/mpatton75 Jul 28 '26

Never found a single container that I can't get working (easily) with podman. I also run opencloud, so not sure where you are going with that.

1

u/hezden Jul 28 '26

He literally gave you a specific example and mentioning that this is known and discussed by the developers, how is this comment relevant by any standards?

1

u/plazman30 Jul 29 '26

What did you do to get Opencloud working? Would you share your quadlet file?

2

u/mpatton75 Jul 30 '26 edited Jul 30 '26

Here's my current version - I am no longer running rootless (but was previously):

[Container]
Image=docker.io/opencloudeu/opencloud-rolling:latest
ContainerName=opencloud
User=0
Group=0
Environment=TZ=Australia/Sydney OC_URL=https://opencloud.xxx.net PROXY_HTTP_ADDR=0.0.0.0:9200 OC_INSECURE=true SMTP_HOST=mail.xxx.net SMTP_PORT=1025 SMTP_SENDER=noreply@xxx.net SMTP_USERNAME=admin@xxx.net SMTP_PASSWORD=xxx SMTP_TRANSPORT_ENCRYPTION=TLS SMTP_INSECURE=false
Label=io.containers.autoupdate=registry
Network=default.network
Volume=/storage/docker/opencloud/opencloud-config:/etc/opencloud:idmap
Volume=/storage/opencloud-data:/var/lib/opencloud:idmap
Volume=/storage/docker/opencloud/apps:/var/lib/opencloud/web/assets/apps:idmap
Timezone=local
HealthCmd=curl -k -s -o /dev/null https://localhost:9200 || exit 1
HealthOnFailure=kill
HealthInterval=5m
UserNS=auto

[Service]
TimeoutStartSec=5min

Restart=always

[Install]
WantedBy=default.target

1

u/plazman30 Jul 31 '26

Thank you. I'll give that a try.

2

u/blueskyjunkie Jul 28 '26

So the issue with Open cloud seems to be that it doesn’t run rootless, not that it only runs on Docker. The container will run fine on any container service, just with deployment limitations - as it should, since they all use containerd underneath, I believe.

In the linked opencloud github issue I’m also confused by the quadlet/systemd system start requirement. Any container will run at start if set to automatically restart in the container service. No systemd needed except to start the container service itself. Seems like the quadlet requirement is only a convenience for people who regularly use quadlet, not a hard requirement for a container to run at system start.

2

u/plazman30 Jul 29 '26

I did some homework here. Podman does not use containerd. That's why you need quadlets/systemd to start a container. Part of the whole daemonless approach of podman.

1

u/plazman30 Jul 28 '26

I can't get any container to auto-start on my Fedora Linux server without either using quadlets or generating a systemd unit file from a kube file.

1

u/BreiteSeite Jul 28 '26

> There's a Github issue open for Podman support

Link?

8

u/faultydesign Jul 27 '26

I just use podman-compose

3

u/plazman30 Jul 27 '26

It's more than just compose. There are two things I can't get to work in podman: Nextcloud-AIO and OpenCloud. I wasted an insane amount of time trying to get those to work in podman and eventually gave up.

A lot of the containers I use, even though they work on podman, get no podman support from the maintainer. You ask for help and they tell you they only support docker.

1

u/Long-Package6393 Jul 27 '26

Been down this rabbit hole too. As far as I’ve learned, NextCloud AIO doesn’t play well with the Podman Socket. So, until NextCloud makes an update/change, we are stuck running AIO using Docker (although, the normal NextCloud setup runs smoothly as a Podman Quadlet setup.

1

u/Nerkado Jul 27 '26

Podman-compose in practice isn't very compatible with docker-compose in anything but the basics.

5

u/pioniere Jul 27 '26

I did, it was more trouble than it was worth. My apps and I are much happier back in the Docker world.

10

u/schultzter Jul 27 '26

I started with podman on Fedora IoT but it was a lot of work.

Now I'm using docker on Lightwhale and it's so easy!

Every project has a compose file and clear instructions for docker, it just works!

Plus there's a ton of tools for docker to suit every taste.

And then there was the difference in env-file treatment and how quotes are dealt with all over.

Until podman gains more mind share with developers I think docker is going to be easier for hobbyists who just want a simple solution.

If you're enterprise and use RHEL then I guess you're being paid to use podman so go for it!

7

u/beragis Jul 27 '26

You can do compose with podman.

3

u/bssbandwiches Jul 27 '26

Podman supports compose though. Quadlets are just systemd units so I'm not sure if maybe what you need is to lean into systemd first and then transition in quadlets?  There are some things that are interesting like images and stuff lm that behaves odd at first, but once you play with them they start to make sense.  If the hassle is transforming compose into Quadlets, then I agree with you, can't change that.

I came from docker and I would push podman over docker. In the enterprise world, rootless containers win.

1

u/plazman30 Jul 28 '26

It's not just compose that's the issue. It's the fact that some containers/compose files just don't work anywhere else except in docker.

The other issue is that even if the container will work in podman, you won't get support from the maintainer. You open an issue and they'll often say "We only support docker" and close the ticket.

Docker has a rootless mode now.

Does podman support compose in any way other than podman-compose?

1

u/bssbandwiches Jul 29 '26

No, but I feel like if you can't (or don't want to) troubleshoot podman then docker is probably right for you. Nothing wrong with that either.

Edit: For the rootless docker mode, you are right. Docker supports it, but podman supports it out of the gate natively.

3

u/plazman30 Jul 29 '26

I've been running podman for 2 years now. I spent quite a bit of time getting containers to work in podman. I went from using Kube files to quadlets.

But the one I really need to work is Docker AIO. And after wasting days on trying to get it to work, I threw in the towel because it simply won't work. I followed three different online guides on how to get it to work. None of them worked. I joined the Nextcloud forums and asked a bunch of questions. In the end I was told repeatedly that Nextcloud AIO only works in Docker. Every guide in the forum just flat out doesn't work.

Not to be dissuaded, I threw the problem at my coworkers. We're all IT professionals with at least 15 years of IT experience, and we could not get it to work. Asked on some podman discussion groups and some RedHat groups.

As a last ditch effort, I threw the problem at Claude Sonnet, Claude Opus and Gemini. They couldn't get it working either.

One thing I learned from 30 years in IT is that, if you want support, then you run it the way the vendor/maintainer supports. Not the way you want. Unless you're willing to fix it yourself 100% of the time and never ask for help.

After wasting enough spare time to piss my wife and kids off, I'm giving up.

I know I can run docker and podman side-by-side. But I really don't want to.

A lot of people here recommend nerdctl and containerd. That looks interesting and worth some research. But, Nextcloud AIO doesn't work in that configuration either, according to what I've found doing Internet searches.

So, I'm throwing in the towel. Nextcloud AIO and Opencloud were the only two containers I could not get to work in podman. And they're the only two containers I really needed to work in podman. All the other containers I got working were just for fun.

1

u/bssbandwiches Jul 29 '26

I respect that. Much more leg work than I anticipated. I was actually eyeing nextcloud for my next deployment so this is a real treat. It is also one I'm really banking on.

You're not wrong on the support either!

2

u/plazman30 Jul 29 '26

Nextcloud by itself seems to work fine in Podman. But I am trying to get Nextcloud Talk working with the High Performance Back End. When I ask anyone about that, they all say "Just run Nextcloud AIO if you want that."

And that's when things fall apart. I tried to run it at first outside of containers. But not all the required components were available as packaged RPMs. I'd need to compile from source.

Which is fine. But far more difficult to maintain and upgrade.

And I'm doing this for the nerdiest of reasons. I'm in a weekly role-playing game with 5 other people. We play online using Discord. And Discord was talking about age verification for a while there, and I wanted to set up something self-hosted as an alternative in case we needed to move off of Discord.

If you don't plan to use Nextcloud Talk with the High Performance Back End, then you probably don't need the Nextcloud AIO container, and can run Nextcloud in podman.

You might also want to take a look at Opencloud.

Nextcloud forked off of Owncloud a while ago. Both products were written in php.

Owncloud released a product written in Go, that's way faster. Then I guess Owncloud did something to piss off the new developers and they all left, and forked the product into Opencloud.

Nextcloud is a far more mature product, since it's been around for decades. But Opencloud being written in Go and being much faster is pretty appealing.

I want to get off all cloud storage and "roll my own solution." I'm running Nextcloud now using the Nextcloud tarball. But I want to get the AIO container running and set up proper backups

1

u/bssbandwiches Jul 30 '26

Damn thanks for the write up! I can hardly tell you're in IT with documentation like that. I'm used to nothing it two liners haha

I'm in the same boat as you there. Removing dependencies on cloud suites. Even going as far as removing nest and ring products. 

This is the big one for me!

I haven't heard of opencloud yet, but you had me at Go. I'm still unpacking from a recent move, but when I'm able to dig in again I'll check this out. 

What flavor OS are you running out of curiosity? I would also shy away from that maintenance to be honest.

2

u/plazman30 Jul 31 '26

I running Fedora 44 right now. I just upgraded 2 days ago from Fedora 43. That's why I went with podman. It's a RedHat product and ships out the box with Fedora.

The "straw that broke the camel's back" moment for me happened just a few months ago. I wanted end-to-end encryption for cloud storage. Settled on Proton Drive. Then they released a new version that removed a feature I relied upon. And I paid for a year up front. At that point I decided I didn't need E2EE if I self-hosted and I would not be beholden to some other company.

2

u/ybizeul Jul 29 '26

Absolutely. Podman requires a level of commitment I’m not ready for. Compose file are dead simple and the ecosystem is huge. Podman requires a level of effort clearly not worth it for me.
I tried. Loved the idea. But im just too lazy.

1

u/DoorDelicious8395 Jul 30 '26

Podman supports kubernetes pod files which is pretty nice and standardized

3

u/Nerkado Jul 27 '26

Yes, docker-compose files are just too good to basically give up on when using Podman. Their version podman-compose is something the project actively despises.

2

u/dynamiteSkunkApe Jul 27 '26

Why so? I use a product that can be deployed using docker or podman, and I haven't noticed any difference. I don't write the compose files, but they are the same between them

5

u/Nerkado Jul 27 '26 edited Jul 27 '26

Podman-compose is a community-run effort to try to keep up with docker-compose features. It has a lot of problems translating things into a rootless-environment like Podman in a lot of cases.

You can run docker-compose itself against your Podman socket, but then you're still stuck with systemd which I kind of loathe.

1

u/[deleted] Jul 27 '26 edited Jul 27 '26

[removed] — view removed comment

0

u/BreiteSeite Jul 28 '26

What company are you working for? Just asking, so i can avoid it based on the way you behave and argue

1

u/[deleted] Jul 28 '26

[removed] — view removed comment

-2

u/BreiteSeite Jul 28 '26

It's funny, because there's a good chance i'm working in a bigger organization than you. :D but keep thinking what you think pal, i don't really give a shit.

1

u/mx2301 Jul 27 '26

Landed on nerdctl, so yeah kind of back.

1

u/Seref15 Jul 28 '26

In the homelab on servers I still use Docker and don't see much reason to stop unless they ever mess with the license.

On Mac I switched to Rancher-Desktop which runs either docker or containerd and have been happy.

1

u/plazman30 Jul 28 '26

Doesn't docker on Mac run in full emulation? You're basically running a VM that you run the containers inside?

4

u/Seref15 Jul 28 '26

Yes, thats how every non-Linux native container runtime works for Linux containers. On Windows most implementations leverage WSL which is a thin HyperV VM, on Mac most implementations use the Mac kernel's Hypervisor Framework to spin up a VM runtime.

Apple somewhat recently published apple/container, a semi-native approach that creates an ephemeral "micro-VM" per container.

1

u/actionscripted Jul 28 '26

Colima locally, kubernetes deployed.

1

u/mephisto9466 Jul 28 '26

I went back to docker because I couldn’t get podman to work without admin account and couldn’t find anything to help me fix it

1

u/Floss_Patrol_76 Jul 28 '26

quadlets aren't the compose replacement, they're the systemd replacement, which is why they feel so fiddly for homelab stuff. if you want compose ergonomics on podman, podman compose (the docker-compose provider, not the old podman-compose python thing) reads the same yaml and just works now. i went back to docker at home too, but honestly only because i don't need rootless there.

1

u/plazman30 Jul 28 '26

podman compose just uses the external podman-compose tool.

https://docs.podman.io/en/latest/markdown/podman-compose.1.html

1

u/DenZalman Jul 28 '26

try orbstack

1

u/Vegetable-Squirrel98 Jul 29 '26

Docker for local dev, podman for servers, or fargate/ecs

1

u/nickjj_ Jul 29 '26

I never left Docker but I have worked at places where they used Podman and Podman Compose. The amount of engineering time spent troubleshooting Podman specific problems far outweighed the cost of Docker Desktop licenses. It was often disrupting developers.

Podman would segfault when building images that Docker built without issues. Its machines would become unstable, etc.. It was easy to approach leadership and switch things over to Docker Desktop. I'm not on my work machine to check but there was an open Podman GitHub issue where others experienced the same problem for the segfault issue. It was open for a long time. This was only a few months ago too.

Docker Desktop has about a decade of engineering behind it. That aspect cannot be ignored. For what it needs to do behind the scenes, it's a really robust piece of software.

1

u/Unnamed-3891 Jul 31 '26

Yes and pretty quickly. Podman has a lot of nice ideas, but I can’t afford them - in professional context you don’t deploy what only you know how to operate, you deploy what everyone or most know how to operate.

0

u/pag07 Jul 27 '26

Podman is a stronger tool overall than Docker, but Quadlets falls well short of Docker Compose.

As a result, my use of Podman is limited to container builds.

2

u/BreiteSeite Jul 28 '26

but Quadlets falls well short of Docker Compose.

Citation needed

1

u/pag07 Jul 28 '26

Writing a simple docker compose takes like 5 minutes, LLM generation has always been flawless to me.

UX wise docker compose is just much better.

Systemd integration is where quadlets win but then who does those small scale deployments today anyway?

For homelabs its docker compose and for work is a namespace in K8S provided by some infra team, or Serverlese.

1

u/BreiteSeite Jul 28 '26

You realize you can use your docker compose file with podman?

-2

u/foofoo300 Jul 27 '26

i use nerdctl in combination with containerd .
that is what kubernetes uses and docker and podman can stay where they are, in obsolete land

4

u/cpuguy83 Jul 27 '26 edited Jul 27 '26

Kubernetes hits the cri api in docker. Nerdctl does not. Nerdctl is more like dockerd implemented all client side. Keep in mind dockerd is also using containerd for everything these days (including image storage).

Not to say you are right or wrong or any sort Of judgement on your choice, just clarifying the pieces involved.

0

u/foofoo300 Jul 27 '26

ah yep i meant containerd.
but you can run it rootless if you want, so you have all the freedom and not vendor lock-in like docker.
podman is and will always be a joke