Docker vs Podman, which one to choose for a beginner and why ?

folak@lemmy.world to Selfhosted@lemmy.world – 67 points –
54

You are viewing a single comment

Podman, rootless containers work well, and there is no central process running everything. I like that starting containers on boot is integrated with systemd.

How do you automatically start podman containers? I currently just manually add systemd entries but that’s a lot more cumbersome than Docker which doesn’t require you to do anything at all.

I use Quadlet, which is now merged in podman. The only issue I had with it is running system systemd services as other (rootless) users, I can't get it to create cid files that the users can access. In those cases only, I have to modify the generated services files, which defeats the purpose.

That's how you do it, you have to write systemd config files for each container. And because it was cumbersome they've come up with third party tools that write them for you and launch the container. 😉

Since I use Docker Compose with Podman, I just make a single systemd service to run Docker Compose on boot, thereby starting all my containers at once.

That’s an interesting way to do it. Do you have everything in 1 compose file?

I have one Compose file per stack, which is an application and all of its containers, databases, etc. Pretty much the same way I organized things with just Docker.

i would like to try.. but as far as i know, there is no "docker compose up -d"

Podman supports docker compose just fine. You have to run it as a service, so that it can expose a socket like docker does, but it supports doing exactly that

Apparently it does! podman-compose

cool, thank you!

Check my comment history for an example of a simple bind mount compose.yaml I use for developing a small Python project. It's exactly the same as Docker Compose (since Podman Compose follows the Compose spec) but if you're just getting started, it might be a good skeleton to build on.

i have all my stacks on docker compose. if it follows the same specks, i would only need to convert volumes and networks