5 ms·
No idea why Docker is still so much more popular than Podman. Podman is obviously the better implementation. The new network stuff is a welcome improvement.
by SwellJoe 4mo ago
No idea why Docker is still so much more popular than Podman. Podman is obviously the better implementation.
The new network stuff is a welcome improvement.
- q8zd3 4mo agoit has a stronger brand, probably because it was created first. I still hear the term "docker container" (sometimes).
- ffsm8 4mo ago> sometimes I've never interacted with anyone that knew them by another name. It's always (docker) container, where they may leave out the docker term, but if questioed what kind of container they mean theyll say it. And the times I've called them OCI container (or image when talking about those) nobody knew what I meant until I clarified to docker
- dockerimage 4mo agoI hear occasionally Image Container, but even that is fundamentally docker flavored because when disambiguating for the term "image". This comes up because we use both the Image and Package registries on Gitlab, so we sometimes have to absolutely specify, and the conversation lends to "The Docker Image one".
- alanwreath 4mo agoI mean for local dev I like that I can just press one button and have Kubernetes available. Podman Desktop had something approaching that simplicity but I have found Docker Desktop more stable in my limited experience with it.
- deleted 4mo ago[deleted]
- fithisux 4mo agoI used rancher + podman on Windows. Mainly Rancher. The last 8 months I use exclusively Podman + Podman Desktop. Rancher has a slightly better desktop app and can manage podman.
- tsfenwick 4mo agoI ran into an issue I couldn't figure out how to solve with podman. Some of the testcontainers my test suites would run wouldn't start in time causing tests to fail locally. Switching back to docker desktop solved the problem.
- gkhartman 4mo agoThis except in production. Nothing helped. I actually stopped using containers for a bit after that.
- whalesalad 4mo agoMost people simply do not care. They just want a Dockerfile to become an image, and they want to run that image. I use both... rootless podman is nice. Although the promise of ez systemd integration is a bit... oversold. I use it with systemd however with my own hand-crafted unit files. Pretty good combo.
- spockz 4mo agoI think a stronger brand name. Also on macOS I found Docker Desktop to be more straightforward. Also lately it has been very error prone. Randomly failing at mounting files, or cleaning up networking rules, or suddenly becoming bog slow so I have to restart the VM. Podman on macOS feels miles less refined. Orbstack is a way better choice. I only use podman on Linux and there it is blazing fast. Even so, most features seem to be geared to be able to replace kubernetes in combination with systemd. And then something simple as docker compose support is flaky and it’s TUI/ux lags behind the original.
- satvikpendem 4mo agoI like OrbStack for macOS, much faster.
- SOLAR_FIELDS 4mo agoNow that Apple has containerization api’s probably the gap closed but when I ran benchmarks a couple years ago Orbstack would on average perform the same build at 4x faster wall clock time as docker desktop
- spockz 4mo agoBuild as in building images or as in building a project when mounted in a container? I notice 3-4x performance degradation of our maven builds in containers. With golang I haven’t noticed much performance degradation, but that may be because it is fast enough anyway.
- Y-bar 4mo agoFor the company I work at, it’s primarily inertia. We started using containers with Docker. And then it just continued. We are two out of 20+ developers who would like to use Podman, but the rest is just ”eh, why bother?”. And I don’t fully fault them for holding that position, Docker generally works. Why switch to something which may or may not provide some benefit (most which will be indirect such as better security and setup)? I still continue to mention Podman regularly though …
- pjmlp 4mo agoIn many places it doesn't matter, because cheap companies don't want to even hear about Docker, so one gets to choose between podman, rancher, and if on Windows wslc is going to be a thing. Docker (the company) lost the plot in Linux containers, OCI got standardized, alternative runtimes came to be, and very few companies actually care to pay for Docker Desktop or the other services they sell.
- ifwinterco 4mo agoDocker CLI is free for commercial use, it's only docker desktop you have to pay for
- pjmlp 4mo agoI know, but companies legal or IT department make it easier, no docker of any kind being installed from https://www.docker.com https://www.docker.com. Microsoft also is finally adding their own docker cli (wslc), due to having had enough pressure that many companies don't want to instal third party tools for Linux/Windows containers, even if API is compatible with docker daemon. Apple is doing a similar approach on top of their virtualisation framework.
- trollbridge 4mo agoI gave up on Podman for some minor reasons: one was that they decided to deviate from Docker and handle SELinux differently, which required effort to change the SELinux security labels on a stock Centos system. That made it a no go. The other issue is minor differences from Docker, but small enough that a packaged up Docker compose doesn’t work out of the box. It’s not a good use of my time to debug that when I could just switch to Docker, have it work, and get on with my day.
- the-grump 4mo agoCan you elaborate on SELinux? It affected me too but I just had to add :Z to my mount argument. Curious about whether there's further impact I'm unaware of.
- trollbridge 4mo agoThere were other problems although it’s been a few years so I’ve forgotten them. I think the container I had trouble with Ory Kratos. We did eventually get it to work but had to change the sample docker deployment a fair bit. macOS had a seperate set of problems. I ended up just going with buildx and Colima on macOS. (We don’t use Docker Desktop.) Long term I’d like to try to switch to podman again, but it needs to have a “be 100% compatible with Docker” mode as opposed to this: https://github.com/podman-container-tools/podman/issues/14786 https://github.com/podman-container-tools/podman/issues/1478...
- psadauskas 4mo agoThis is my biggest gripe. If you're using docker-compose.yml on a team that mostly uses docker, you can't use use that same docker-compose.yml with rootless podman. Any volume mounts that need to be writable (like the app, or databases) need to have `:X` or `:x` as a suffix, or podman won't set the SELinux label correctly to make it writable. But if you add those, docker blows up because it doesn't understand them.
- lmc 4mo agoI've recently been using podman on SELinux... :Z and :z seem to work fine across both podman and docker for writeable volumes. Am I missing something?
- Chyzwar 4mo agoLast time I evaluated podman, Ubuntu was second class citizen. Rootless was non trivial and required additional setup. Documentation also suck. Docker is something we all already hate, milion edge cases and forever bugs but at least well documented and understood. Podman claim to be drop-in replacement does it mean it carry docker shitness? Examples: ufw punch through, env file handling, volumes, etc
- cogman10 4mo agoWith recent advances in both systemd and podman a lot of this is basically a non-issue. Documentation has also gotten better. For tools that require docker to work, like testcontainers and tilt, I've found some annoyances using podman, but ultimately I've been able to work around them. For everything else, it's pretty much a drop in replacement.
- Chyzwar 4mo agoThey should better manage expectations. They put rootless as a forefront before it was ready and still no proper support for Ubuntu on v4 of Podman. [1] https://github.com/podman-container-tools/podman/discussions/17362 https://github.com/podman-container-tools/podman/discussions...
- raffraffraff 4mo agoLast time I tried rootless podman was about 6 months ago and it was a total mess. I was trying to use it to run a container as me (user 1000) and mount a directory from my home (owned by user 1000) and it drove me and Claude around the bend. It's not a podman vs docker thing per se, just rootless being a total pain. However I just enabled the docker service, ran the same command on docker and it worked. I think I just left docker running after that. I realised that on my home setup I don't care enough to fight with it. Sometimes you just want to do the thing you want to do and not turn it into a 4 hour learning session about some side shit.
- noxvilleza 4mo agoHad similar issues with podman on a Steam Deck of mine that I use as a little home server - eventually got a configuration working fine but was a real pain.
- paulddraper 4mo agoBrand. "OCI container" doesn't have same ring, unfortunately. And most Podman things are just clones of Docker, e.g. Containerfile. In a clone situation, the original brand will always have the staying power.
- todotask2 4mo agoOne advantage of Docker is reliable host-to-container file change notifications, allowing tools like Vite inside the container to detect changes. Podman and many alternatives don’t handle this well for our web development on macOS. Not even Tart or Apple Container support it, as far as I know. Maybe someone has found a way.
- egorfine 4mo agoYeah, it doesn't work with Apple Containers. Works with OrbStack though.
- esseph 4mo ago> don’t handle this well for our web development on macOS In general this seems to be a common complaint here. If you're developing with cloud runners or on linux infra you won't run into this, but on macOS for local development it is impactful.
- hoppp 4mo agoThats a use-case I never tried but seems valid. Is it a common issue on macOS?
- theK 4mo agoLast time I checked podman compose was only a superficial docker compose equivalent. Also stuff like inotify seems to randomly break a lot on the podman side. I'd love to be able to recommend people use podman but not having a good docker compose compatibility and missing inotify on volumes makes the DX just too problematic.
- hoppp 4mo agoCheck again? I don't have any issues like this and use podman compose in prod.
- davkan 4mo agoIt was a pain when i tried it like 5 years ago for what it’s worth.
- theK 4mo agoI spent about a week last year trying to move from docker+compose plugin to a podman hosted variant. It has issues on multiple stages of the lifecycle as I mentioned in my original comment. Mac users lose fs events, a lot of compose.yml features are flaky (post start events), buggy (reset and import), or just not implemented (don't remember the exact features). If you use podman and have no issues that is awesome but your use case is probably quite narrow, you are most probably on a non fedora based Linux and keep compose usage to a minimum.
- debugnik 4mo agoYou can use actual docker-compose with podman, the -compose projects are separate from podman/docker. podman-compose never worked well for me but docker-compose on podman did.
- drdexebtjl 4mo agodocker-compose (v1) is obsolete. The new version (v2) is a plugin for the docker CLI.
- tbocek 4mo agoJust today, I tried to run docker compose on a remote host via podman-docker on Fedora (Asahi). I ran into all sorts of buildx issues, and the easiest fix for me was to remove podman and install docker instead. I tried working through it with Claude, but after a few failed attempts I gave up. I'd like to use podman, but the docker compose + buildx compatibility gaps made it more trouble than it was worth for now. I'm definitely going to try it again.
- nyrikki 4mo agoIf you want podman equivalents, you can either use pods of multi containers are the need, or if multi arch builds are the main buildx need, OCI manifests work. Fedora and selinux may be a thing to look into if you were trying to share volumes. I am posting this from a park on my phone, so this may be slightly wrong, but this is the multiarch case that seems to be harder to find for many people. podman manifest create my-image:latest podman build --platform linux/amd64 --manifest my-image:latest . podman build --platform linux/arm64 --manifest my-image:latest . podman manifest push my-custom-image:latest docker://docker.io/user/my-image:latest All depends on your needs, but even with docker I prefer moving forward with OCI when possible, preferring standards to product specific workflows.
- gdevenyi 4mo agoBecause they don't publish up to date packages for major distros.
- hoppp 4mo agoWe need to popularize a "podman btw" meme based on the arch meme. So any time people talk about docker someone can go: I use podman btw
- sudonem 4mo agoI’d wager it’s mainly just that deployment is mildly more annoying and requires more disparate steps. Especially if you want to go rootless (and you should). For someone that isn’t “Linux first” (like a baby developer learning to containerize their apps), the idea of dealing with systemd unit files or kublet configs, and having to created dedicated local service accounts (and remembering to enable linger) is somewhat intimidating when compared to just installing docker, whipping up a docker compose file and pressing “start”. I understand why they’ve taken this approach but it’s pretty clunky and a bit unfriendly.
- ATMLOTTOBEER 4mo agoI think it’s probably correct strategy wise to just “do the right thing” They’re essentially long junior devs asking Claude to set up podman
- tormeh 4mo agoAre we talking windows here? On Linux and Mac I believe you can install Podman via a package manager like anything else.
- sudonem 4mo agoLinux. It’s not the installation of podman that can be fiddly. It’s the setting up systemd unit files and local user accounts for rootless / daemonless deployment of containerized apps that can be a headache. It’s not hard. It’s just fiddly.
- drnick1 4mo ago> It’s just fiddly. You could quite simply have a systemd file that calls podman compose up when the service starts and podman compose down when it stops. Basically the same systemd file for every container stack defined in a single compose.yml. It's extremely easy, and does not do stuff behind your back like Docker (such as silently altering iptables rules).
- 4mo ago
- owenbrown 4mo agoPaaS like render.com explicitly support Docker. As a developer, I wager that any gains I get from Podman will be dwarfed by bugs that I’m encountering in the other software I use. I’m not implying that Podman causes the bugs. I’m saying that I’ll be more likely to be the first person to encounter the bug.
- coolgoose 4mo agoThis comment it's a bit weird, both podman and docker and render etc support dockerfile which is a standard way of packaging.
- curt15 4mo agoIsn't Docker is basically a front end to containerd, the most common k8s container runtime? One could just as well ask why use a completely separate container stack just for local development when docker shares the same business end as the prod environment.
- danudey 4mo agoI mean, one answer is that docker configuration on your local dev machine can go one of two ways: 1. You have to use `sudo` for every `docker ...` command; or 2. You add your user to the `docker` group and now anything that can run as your user can use docker to read or write any file on your system, making docker into the best local privilege escalation option out there.
- WhyNotHugo 4mo agoYou can also run docker in rootless mode.
- LeBit 4mo agoColima just seems to be easier to work with using Docker. Devcontainers work without having to pass special arguments and deal with inconsistent stuff once in the devcontainer itself. K3d is easier to work with Docker. Docker locally just makes sense.
- deleted 4mo ago[deleted]
- teekert 4mo agoI went all in on podman compose last year but went all back because off constant permission errors. I thought it was going to be better than docker because I run the containers as a user… but man the amount of time I wasted on files that either I or the container itself or some other container couldn’t read… With docker I felt that stuff just works. And then there are the extra steps: Enable user lingering, make a systemd service that starts the compose containers (and there is nothing really “native”, it’s a script.) With Docker compose containers just restart if you say so in the file. There are many great things about podman, will try again in a year or so perhaps?
- ijustlovemath 4mo agowhat kind of stuff is in your compose?
- teekert 4mo agoMostly self made containers, also one with Claude-code, but I couldn't for the life of me get it to be able to store and retrieve credentials in an externally mounted folder (~/.claude). I tried everything from fixing the user creation process in the container, `--userns=keep-id`, `--userns=keep-id:uid=1000,gid=1000`, several tags, :Z, :U, `chown`-ing after creation etc. And I keep running into that stuff. I wish that "run podman containers as a user, rootless" would just simply mean: All the things are also the property of the user, but you get weird uid/guid combos and stuff on your filesystem as owners you never heard of (like www-data, but not that one in particular) due to the mismatches. If containers can ever simply be run as user like they are a user process, that would be so nice.
- ijustlovemath 4mo agoI had to do some extra stuff for my containers, here's some info from a tutorial I wrote: Following the Arch wiki: # Dependencies `yay -S podman slirp4netns aardvark-dns` # Setup podman-compose and the venv ``` python -m venv .venv source .venv/bin/activate pip3 install --user podman-compose ``` On WSL, you'll need to be on Debian bookworm or newer. Older versions of podman-compose for, ie, bullseye, do not work. # Reserving alternate UIDs/GIDs `# usermod --add-subuids 100000-165535 --add-subgids 100000-165535 username` # Setup the storage configuration to overlay Create/edit the following file: `vim ~/.config/containers/storage.conf` Add/edit the following line: ``` [storage] driver="overlay" ``` # Propagate changes to podman `$ podman system migrate` # Bring the systems up `podman-compose up` # I'm on WSL and it's not working (DNS issues) Check if the network created by podman has dns enabled: ``` % podman network inspect $containername_default | grep dns "dns_enabled": true, ``` If it's false, install another dns resolver: ``` sudo apt install golang-github-containernetworking-plugin-dnsname ``` Then delete the network created by podman-compose: `podman network rm $containername_default` ## Out of memory when running `podman-compose up` This error may include "could not map anonymous shared memory". If you're on a mac, try increasing the amount of memory the VM can use, eg: https://stackoverflow.com/questions/70114200/increase-podman-memory-limit https://stackoverflow.com/questions/70114200/increase-podman... ``` podman machine stop podman machine set --memory 4096 podman machine start ``` This will provide podman with 4GB of memory to work with when spawning containers. https://gist.github.com/ijustlovemath/82b4fa31a7c745e87bac5f8210c14552 https://gist.github.com/ijustlovemath/82b4fa31a7c745e87bac5f...
- ddp26 4mo agoYeah, a great developer I know showed me how he could use it to get a safe dev container for Claude Code, in a way that wasn't doable with Docker.
- jerieljan 4mo agoDefault stickiness, tbh. A few years ago, I started moving towards Podman when it got to that "good enough" point on both Linux and macOS and when Docker started to remind people about Docker Desktop that it needed a license for commercial use. Even then, it took around a year or so to transition.
- giancarlostoro 4mo agoI never liked Docker, but someone pointed out to me that Podman is backwards compatible, doesn't need root, and even has simulated docker commands if you need them so you can just alias podman to docker... and voila same experience, so every online tutorial works just fine.
- nijave 4mo agoFuse overlayfs was noticeably slower than Docker's overlayfs setup. Maybe there's a way to reconfigure but I haven't checked lately. I think it was Zig (building ghostty) was broken in podman with obscure "unknown file" errors. Turns out that was lack of fuse-overlayfs supporting some attributes it was trying to check. It's random, little things like that which keep biting me every time I try to make the switch. I use it for simple stuff though.
- nolist_policy 4mo agoPodman, including rootless podman, uses native overlays since Linux 5.11: https://github.com/torvalds/linux/commit/459c7c565ac36ba09ffbf24231147f408fde4203 https://github.com/torvalds/linux/commit/459c7c565ac36ba09ff...
- WhyNotHugo 4mo ago> No idea why Docker is still so much more popular than Podman. Podman is obviously the better implementation. docker-compose is one big reason. The networking aspect of it still isn't feature-compatible compared to using docker. I keep trying podman+docker-compose again every 6–9 month, and there's also some issue that makes it unfeasible for my use case. Its IPv6 implementation is also broken, and connections from the host to the container are dropped if the host doesn't have a public IPv6 address (WTF!?). I reported this in June 2024 (#22959). Not being able to reach an HTTP server on a podman container from my host when I'm offline is ridiculous. Lots and lots of tiny little bugs and quirks which are a nuisance to deal with. With docker, everything just works. Another recent bug I hit was that the value of the environment variable TMPDIR and XDG_RUNTIME_DIR is persisted to disk with podman's internal state. After a reboot, if either of those has changed, nothing works because podman tries to use directories that don't exist. This… seems to be due to workarounds for wildly broken setups. I've reported many of these bugs, and have a backlog of a lot more that I haven't bothered to report yet. What honestly really surprises me is how many people actually manage to use podman for work despite all its issues.
- chillfox 4mo agoThey really upset me with how they introduced it initially, and I haven't looked at it since. Redhat swapped in podman and removed docker, and all of the config/images/scripts I had spend 2 years making stopped working on new/replacement hosts... So I had to spend a lot of time in meetings/filling out paperwork to get docker back. I haven't forgiven Redhat for dropping that shitty experience on my head.
- canadaduane 4mo agoThis was about a year ago, but I had trouble getting podman to add an nvidia GPU so that the container could use it. It was technically possible (I succeeded) but it was annoying and "different".
- user3939382 4mo agoOne answer is ECR/ECS/Fargate ie AWS. You’re not gonna split the ops stories between local and remote.
- jdw64 4mo agoI hold that thought about RancherDesktop.
- znpy 4mo agoThe average developer is much dumber than you think.
- boesboes 4mo agoPodman has some serious issues they are not really fixing, we ran into an issue where builds just hang for a few minutes before doing anything. So we had to switch back to using docker desktop locally for that.