I don't really care what I use, I just want to be able to develop locally without spending days setting stuff up. Rootless or whatever means nothing to me. Docker compose have made that easy for lots of otherwise complicated projects. Just compose up, point editor at the image and ready to go.
I don't like that definition of "usable".
Compose v2.0 compatibility became available only since last month which was very late.
If podman isn't for technical benefit, is this all about political decision for RH to govern container ecosystem on their own instead of dealing with docker?
- `--rootfs` lets you start a container from a directory instead of an image
- You can configure alternate container storage locations, e.g. to share a common library of container images among multiple machines over NFS
- As previously mentioned, it has the k8s-like notion of "pods" which are multiple containers sharing namespaces with each other
- It will play nice with systemd, both inside and outside of containers, and can generate systemd services for containers
I think the last point is really why Podman exists in the first place; IIRC, Red Hat's developers made a valiant effort to get patches into Docker to improve its cooperation with systemd, but the folks working on Docker weren't interested. If Red Hat's patches to Docker had been upstreamed, Podman might not exist.
Last time I tested it, it had some downsides, but "last time" was like at the start of this year so things maybe might have improved since then.
That said, I don’t even bother with that. Podman can run K8s configs, and they are yaml too, only slightly more verbose than a compose file, if you strip everything out you don’t need. The CLI is nicer than compose too, with proper commands instead of tying up a terminal until a ctrl-c.
https://gist.github.com/pkulak/d22407b887461b416891b78fb3793...
It can probably be even more concise, but I stopped stripping stuff out here.
Wow that's a heck of a killer feature.
Once Podmam implements a replacement for Docker's docker swarm, Docker is effectively deprecated.
$ systemctl --user enable --now podman.socket
$ export DOCKER_HOST=unix:///run/user/$UID/podman/podman.sock
and get a rootless, Docker-compatible socket. If you're running, e.g., a test suite written against the Go Moby APIs, this will execute the containers with Podman rather than with the system daemon.
Since Podman 4.1 came out with full Compose 2.x compatibility, I'm running Podman on Docker's socket, but using Docker's CLI to talk to it, so that I can use the buildx and compose CLI plugins. It works great, Docker's CLI doesn't seem to have any clue that it's talking to not-Docker. I even have VSCode's Docker extension and Remote Containers working this way.