back
21 comments
Question for the experienced SREs: does it still make sense to learn docker instead of podman in 2023?

I’m a relatively newly minted SRE and the eli5 explanation that I’ve gotten is that podman allows rootless containers and the only real disadvantage is that it lacks an equivalent version of ‘docker-compose’.

I understand that we ought to be using the right tool for the right job but to be frank there is only so many hours in a day for learning everything.

Also for the OP: thanks! I have an O’Reilly subscription so I’m covered but I’m sure there are folks who can use this book.

Docker is still what's used and what you will see e.g. at work.

Podman is what you would want to learn on top.

More often than not this is kubernetes, openshift or ECS that is used at work more than docker which is more a local dev solution that is easily replaced by podman.
Podman is supposed to be a drop-in replacement for Docker, and I’m still yet to see Podman in action at my production deploys (barring what I’ve heard once from a discord). So yes, still makes sense to learn Docker
re: docker-compose

Have you tried https://github.com/containers/podman-compose ?

You can use the real docker-compose now: https://www.redhat.com/sysadmin/podman-docker-compose

No need for podman-compose and it's incompatibilities.

I’ve tried to use it. There are enough small incompatibilities that I had to give up.

I think podman needs to grow an integrated version that matches compose v2.

Podman believes the future is Kubernetes. It supports kubernetes.YAML just like regular Kubernetes and OpenShift. But runs the Pods and containers locally.

Checkout podman kube play as an alternative to docker-compose, even has --build and down functionality similar to docker-compose.

podman kube generate Generate kubernets.YAML from running pods and containers on your system.

You should be able to runc docker-compose (v2) against a podman socket activated service.
The tutorials flows for buildah + podman never seemed to work for building an image, naming it, then creating and running a container of that image based on the name, maybe podman compose will work.
I... didn't know this was a thing. Thanks! I'll take a look :-)
docker is still the major player.

also, podman still runs as root in many distros so i wouldnt care much for thar argument.

Podman will run as root or rootless mode, depending on how you want to run your container. Each user on your system can run containers in their home dir, or if you need extra privileges you can run the containers as root.

We have found very few Images at docker.io or quay.io that require podman to run as root to run them. Usually the issue is binding to a port < 1024, but even that can be handled with a sysctl.

The goal with Podman was to allow you to easily learn either and move back and forth. Similar to moving between web browsers or file systems.
For those who have bought the book, thank you. You can buy copies at

https://www.manning.com/books/podman-in-action

Or download the free PDF from Red Hat at:

https://developers.redhat.com/e-books/podman-action

The only upside I see with Podman compared to docker is,

- Podman is rootless

- Podman is daemonless

If you read the book, you will find all of the advances that Podman has added over Docker. Pods, Kubernetes Yaml support, full integration to systemd, auto updating on containers on Edge devices ...
- Podman is more "free" than docker is
Yes Podman is a completely free and open source project. It will never charge for uses and anyone can contribute. Come to github.com/containers/podman and join the community.
What's the deal with the "processing your cookie preferences" for "up to several minutes" on redhat's site..?