3 ms·
I’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).
by sudonem 3mo ago
I’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 3mo 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 3mo agoAre we talking windows here? On Linux and Mac I believe you can install Podman via a package manager like anything else.
- sudonem 3mo 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 3mo 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).
- sudonem 3mo agoSure. But that wasn’t OP’s question. The question was why Podman doesn’t have the adoption levels that Docker does, and my supposition was that (for those that don’t have much Linux administration experience) added steps like systems configs, or quadlets etc are just another barrier to entry that you don’t have with Docker. I’m not arguing that Docker is better (I think Podman wins in a lot of ways actually) just that Podman requires a bit of extra work to implement well and that is just enough of an annoyance to tip the scales towards Docker.
- drnick1 3mo agoI think it's just because Docker came before. Podman is more secure and architecturally cleaner, but not touching something that works is an equally good reason not to migrate.
- dialogbox 3mo agoIt might not be the popular way here in HN but nowadays I just ask llm to create required configuration files and everything is so easy. Of course you need to review them but tbh no more headaches at least with config files.
- scheme271 3mo agoDoesn't quadlet fix some or all of those problems? It's supposed to allow you to convert podman containers to systemd unit files automatically
- sudonem 3mo ago> Doesn't quadlet fix some or all of those problems? It definitely can solve some of those problems, and that’s the approach I’d generally recommend. But to answer OP’s question - my supposition was that the mere fact that such a device is even necessary (when compared to docker) is an added work that isn’t obviously easy to implement for someone who is just trying to learn how to containerize their app (and might be a developer but not that experienced with Linux administration) and this one of the main reasons Podman isn’t as popular as Docker. I think Podman is better in a number of ways, but it isn’t the most intuitive to implement compared to Docker.
- jrmg 3mo agoYou can just run podman containers as root if you don’t want the fiddllyness of user accounts - it’s no less secure than rootful Docker.
- drnick1 3mo ago> the idea of dealing with systemd unit files or kublet configs, and having to created dedicated local service accounts Podman does not require systemd (thank God). I use a simple podman compose up/down in a user systemd file to automatically bring my containers up at boot, but other mechanisms are possible, like quadlets and init scripts.
- porkloin 3mo agoQuadlets are awesome and honestly I think one of the best additive things that podman has on top of the regular docker toolset. I use podman regularly, and despite it being a good drop-in replacement like 95% of the time, the 5% of the time where it isn't seamless are super painful. For example, skaffold (https://skaffold.dev/ https://skaffold.dev/) pukes all over itself when you try to run podman as a drop in replacement. I'm sure there are plenty of other examples, but that one stops me from using podman at work in addition to in my personal projects.
- krick 3mo agoWell, but that's kinda the point, isn't it? You know that other mechanisms are possible, but you opted out for a user systemd file. I know that too, and I also just use systemd for that. Because the alternative doesn't look much easier. I guess it makes sense that they try to discourage it now, because for serious deployment it isn't the best option. But when I install Podman on my laptop, I really wish the systemd configs would be added automatically without me even knowing. I mean, really, if we keep in mind that formally these are 2 totally unrelated projects, it's hard to complain. Yes, it's almost seamless. But since when installing Podman everyone thinks roughly "I am installing a newer better Docker version", and we all already have a few dozens of custom Docker containers running, it's hard no to wish it was even more seamless and backwards-compatible. I remember the transition process wasn't nearly as smooth as I hoped, and every small glitch is kinda stressful, because you know that currently all of it "somehow works", and if something breaks you probably won't even notice right away.
- gear54rus 3mo agoIts not only intimidating, its clunky and error-prone. That's the answer to OP's question, this podman thing does not have good UX story.
- allarm 3mo agoOr, to look at it another way, the answer is that it’s the developers who don’t want to learn something new that, objectively speaking, might turn out to be better than what they’re used to.
- LinXitoW 3mo agoIt's not just mildly annoying, it completely ruins a great thing. Docker Compose is to stacks what Dockerfiles are to a single application. Podmans solution is to not commit to compose, but instead to create a bespoke mechanism involving a bunch of tiny files, all of which is insanely system (linux) specific, and therefore completely non-portable. I genuinely don't understand how someone can see the value of Docker, but then do things so completely "not-docker" when it comes to deployment/stacks/orchestration.
- deleted 3mo ago[deleted]
- stryan 3mo ago> but instead to create a bespoke mechanism involving a bunch of tiny files, all of which is insanely system (linux) specific, and therefore completely non-portable. To nit pick slightly, it's not really a bespoke mechanism it's just re-using the mechanisms provided by systemd. Quadlets are implemented as a systemd generator in order to re-use the existing service management system that exists on essentially all major Linux distros. Quadlets are less a direct competitor with compose (hence why Podman implements the compose spec) and more a way to better integrate containers with the rest of a system. The closer Podman native equivalent to compose is Kube files.
- hiciu 3mo agoFWIW, for me docker compose works just fine with podman. I am not sure what kind of additional configuration is needed these days, make sure you are running podman with the socket thing and perhaps set DOCKER_HOST. It's just a client / frontend to an API that podman provides.
- NekkoDroid 3mo agoIIRC `podman compose` can invoke either `podman-compose` or `docker-compose` and sets up the environment for the call, so I don't think you need to even really do anything special other than install either of the 2 commands
- 3mo ago
- Zardoz84 3mo agoI use podman on my local dev machine and I don't touch any system-d files for that