Hi, I’ve been thinking for a few days whether I should learn Docker or Podman. I know that Podman is more FOSS and I like it more in theory, but maybe it’s better to start with docker, for which there is a lot more tutorials. On the other hand, maybe it’s better to straight up learn podman when I don’t know any of the two and not having to change habits later. What do you think? For context, I know how containers works in theory, I know some linux I think well, but I never actually used docker nor podman. In another words: If I want to eventually end up with Podman, is it easier to start with docker and then learn Podman, or start with Podman right away? Thanks in advance
In case you haven’t started yet. Learn docker, but use podman.
OP, listen to this person. Docker will earn you cash. Podman is nicer to work with for your own shit.
Docker and podman in general work the same, commands are the same, …
Only biggest difference is that now that I’m trying to migrate from docker to podman is figting over volume binds permissions for databases and such.
Finished migration of 3 containers, 50+ left.
At the end of the day, you’re running containers and both will get the job done. Go with whatever you want to start, and be open to try the other when you inevitably end up with jobby job that uses the other one instead.
As a podman user myself, they’re essentially the same. I look at the docker documentation when learning new things about podman. 99.9% of the time, it’s exactly the same. For the features that aren’t in podman, you can use the podman-docker package. This gets you a daemon so you can have some docker-specific features such as a container being able to start/stop other containers by mounting the socket as a volume, and it allows you to use docker-compose.
Docker is more ubiquitous, Podman has use cases that diverge from Docker.
Discover the use case and decide from there.
That said docker is a good starting point, their documentation is pretty great and once you know docker you’ll better appreciate why podman is different.
It’s easier to start with docker first simply because of the sheer amount of learning resources available on the internet. If you’re having issues, you can usually find a solution quickly with a search engine.
That’s being said, there’s not much differences on how to use them these days. You can even run docker compose on podman.
I’ve read somewhere on lemmy that the podman-compose is unmaintained and shouldn’t be used. Can’t find it now thought.
Yes because it now uses docker-compose by default: https://docs.podman.io/en/latest/markdown/podman-compose.1.html
I can’t comment on that, but actual Docker Compose (as distinct from Podman Compose) works great with Podman.
You didn’t say what’s your goal. What do you want to achieve? For instance, if you work in IT you should probably learn Docker unless Podman is more relevant in your actual daily tasks.
My goal is selfhosting stuff mainly on my raspberry pi. I’m sure I’m not going to work in IT for 3 years and probably not for at least few years after that.
Then just go for Docker. Otherwise you may make it unnecessarily difficult for yourself and get discouraged. In a few years you may revisit the question and see if you still have an interest in podman.
I tried out podman at first, but I found many docker instances simply provide a string of crap instead of explanations. It was easy to get a grasp of how docker worked, and now that I have an idea I feel like I could jump into podman better.
Honestly, if you have never used containers before I would suggest starting with docker as it has more readily accessible beginner walk through and tutorials. From there, you will have a good idea as to switching to podman is the right move for you or not.
Personally, I started with docker and haven’t moved from there since I don’t see a need (yet). I have dozens of services running on docker. I don’t know how heavy of a lift it would be to learn podman but like I said, I don’t feel the need to do so.
Maybe try out both and see which one you like more?
Just to offer the other perspective. I started with podman years ago. I knew very little about containers and I would say it made the learbing curve a lot steeper. Most guides and README’s use docker and when things didnt work I had to figure out if it was networking, selinux, rootless, not having the docker daemon, etc… without understanding fully what those things were because I didn’t know docker. But when I started running stuff on kubernetes, it was really easy. Pods in podman are isomorphic to kubernetes pods. I think the pain was worth it, but it was definitely not easy at the time. Documentation, guides, and networking have improved since then, so it may not be as big of a deal now
Well sh.t… now I got a weekend project hahah
Both. They’re pretty damn similar.
Both. Start with docker as there’s a buttload of tutorials. Once you’re familiar with it jump to podman. Learn the differences, use both for a while and decide what suits you best.
Still haven’t looked into podman properly, but docker is much easier to learn because as you said there’s a lot more material available online. I’d say start with Docker, and if in the future you will find out podman better fits your needs you can always switch (they should not be that different)
Doesn’t really matter for basic stuff as it will be the same.
Once you get into container orchestration the differences start and then you basically need to decide what you want to get out of it.
They’re very similar so you pretty much can’t go wrong. Podman, I believe, is more secure by default (or aims to be) so might run into more roadblocks with its use.
so might run into more roadblocks with its use.
This has been my experience with Podman. That’s not to say that these roablocks aren’t without reason, nor merit, but there is always a trade off of convenience when optimizing for security.
Docker, there are more resources for it and once you know it Podman should be an easy migration if you want to. Also I’m not sure about your claim that Podman is more FOSS than docker, it’s “better” because it doesn’t run as root, but other than that I don’t know of any advantages to it that are not a derivation of “it runs as a regular user”.
Also I’m not sure about your claim that Podman is more FOSS than docker
The issue with Docker isn’t the core product itself, is the ecosystem, it’s the DockerHub, Kubernetes etc.
So if someone made a non-foss frontend for Podman that would somehow make Podman less FOSS? Or of they started working with Podman? You don’t need to use any of those other products, and it’s not correct to say that docker is less FOSS because people have written proprietary software that uses it.
I see your point and would usually think the same way / agree with it, however the issue with Docker is that you’re kind of forced and coerced into using those proprietary solutions around it. It also pushed people into a situation where it’s really hard to not depend on constant internet services to use it.
I’m not sure what you’re talking about. Most people self-hosting don’t need anything special, just a docker compose file. What proprietary software do you think is needed that’s not needed for Podman?
I’m not sure what you’re talking about. Most people self-hosting don’t need anything special, just a docker compose file
Yes, and they proceed to pull their software from DockerHub (closed and sometimes decides to delete things) and most of them lack the basic Linux knowledge to do it in any other way. This is a real problem.
On the same machine I have Docker running as root and not as root. I choose which version, root-ful/root-less depending on what the container needs to do.
I think the only advantage is that Podman runs as root-less out of the box, where with Docker you have to do a few extra steps once it’s installed.
Podman is […] “better” because it doesn’t run as root, but other than that I don’t know of any advantages to it that are not a derivation of “it runs as a regular user”.
Podman can run in rootless mode (with some caveats), but it is still able to run as root — it doesn’t only have the capability to run as a “regular user”.
Docker and docker-compose. Then learn podman after you have some experience, if you want to…
Or jump into kubernetes (or minikube) instead of podman if you want to do highly useful things.
But first, get comfortable building images with a Dockerfile, and then running them in a meaningful way, and networking them, and locking them down.