7 ms·
So question from novice in containers, podman vs docker why should i consider switching from docker?
by machinekob 4y ago
So question from novice in containers, podman vs docker why should i consider switching from docker?
- ByteJockey 4y agoThe main use case right now is that your company won't spring for a docker desktop license (and you work in a windows/mac shop). It works well enough for single docker images, but I've never gotten it to work well with a complicated docker-compose set-up (I haven't tried in a couple months though, so go check the docs before you write it off).
- user3939382 4y agoThe macOS Docker Desktop app (I haven’t experienced other versions) is free and works fine. The paid upgrade is only required for certain features that I would imagine many teams don’t need. My complaint with it is that I’d prefer if there was a 100% feature-parity CLI interface so it could run in the background, and that it should be open source. To have a low-level developer tool that’s required to be in my menubar and administered through a closed-source GUI is IMHO an insane departure from web software development norms. I use lazydocker for now but it should be an official utility that replaces the GUI app.
- desiderantes 4y agoIt's not free if you're in a decently sized company, that's the whole point of the Docker controversy.
- matsemann 4y agoIf the company is of a certain size, Docker Desktop is no longer free. As in, it's free to install and use, but your company is supposed to pay a license.
- jffry 4y agoDocker Desktop is now only free "for small businesses (fewer than 250 employees AND less than $10 million in annual revenue), personal use, education, and non-commercial open source projects." per https://www.docker.com/products/docker-desktop/ https://www.docker.com/products/docker-desktop/
- ByteJockey 4y agoIt works fine if you're working solo, but companies have to pay for it. > To have a low-level developer tool that’s required to be in my menubar and administered through a closed-source GUI is IMHO an insane departure from web software development norms. Yeah, this is why I mentioned the mac/windows shop part. Desktop is only required on mac/windows. On linux, it's just the cli, which works just fine (it's also free). Docker desktop works pretty well, and I'm not saying they don't deserve the money, but I'm not going to spend my own money to do enterprise work, so I have to investigate alternatives (minikube and podman worked the best, in my experience).
- awild 4y agoIt depends on how complex your usecase is, but using pods and just scripting your containers' composition isn't such a hassle in podman.
- alar44 4y agoYou shouldn't.
- mkdirp 4y agoWhy not? Podman has an almost identical CLI to Docker, and can have a daemon that is fully Docker compatible (thus, all Docker integrations work against it including docker-compose). It is literally a drop-in replacement but it doesn't require your company to buy licenses. So yes, you should if you can.
- mindwok 4y agoPodman doesn’t have a daemon, it has a socket that will replicate the docker API. That comes with some limitations, especially around the lifecycle of containers in ie starting containers on boot, restarting unhealthy containers etc which require you to use systemd. Podman’s integration with systemd is pretty easy now though.
- lmeyerov 4y agopodman has had repeat compatibility issues for us, and redhat has made docker installation stupidly hard in rhel8 at the policy level, which matters given the monopoly status of rhel in secure environments. It is hard for me to support the podman community for basically ethical reasons at this point. Normally I like competition and innovation, but not like this.
- emptysongglass 4y agoThis doesn't sound like an ethics issue unless you have other issues with Red Hat's behavior.
- lmeyerov 4y agoStrong disagree. See above. IBM/RHEL seem to be the effective the stewards of Podman, and are using their monopoly-like position in enterprise OS segments to take control of the virtualization layer through it. This is similar but worse to old MS/Windows doing tricks for IE vs others. Supporting Podman is supporting explicitly anti-competitive IBM/RHEL OSS behavior for enterprise, utility, & gov environments.
- sigg3 4y agoI'm not going to attest for accuracy on the statement, but from my RHCSA training I recall that docker runs as a daemon, while podman runs containers in separate processes; so it should be easier to avoid lockup/blocking.
- timost 4y agoA few elements to inform the decision: - Both docker and podman support rootless containers. - Rootless podman setup is easier to achieve from experience and it integrates well enough with systemd. - Docker requires a daemon to run at all times whereas podman doesn't. - A lot of interesting things are going on with podman ("native" gitlab-runner executor in the works, wsl2 support, among other things)
- eberkund 4y agoDoesn't Docker already support WSL2? Or is there something different about Podman's WSL2 support which makes it better/different than/from Docker's?
- lmeyerov 4y agoYep, docker in wsl2 is great, including GPU support wsl2 mode is super impressive -- none of the overhead of docker on os x
- girvo 4y agoNone? How does it manage that, it’s still running in a (Hyper-V) VM? Are there any good docs/blogs that go into detail on how they’ve managed to avoid that overhead? Would be awesome to learn about
- lmeyerov 4y agoFor the comparison to os x docker, the biggest slowdown for os x docker is the file system mapping. It basically breaks any reasonable performance chart: look up posts getting into alternatives like mutagen. The slowdown makes using an IO-heavy dev flow like live editing via `npm run watch` relatively unusable: 30X+ slowdowns are normal. There might be high CPU overheads too (I recall we had to tweak seccomp), but when basic IO is so slow, the rest doesn't matter. In contrast, yes, wsl2 has 5% CPU hits (hyperv, ...),but a sane FS mapping, so the total overhead is imperceptible for a windows dev box. I was pleasantly surprised to see wsl2 Just Work. Our only issue preventing wsl2 from being the official team rec over native Linux has been wsl2's lack of opencl, and that's just specific to our use of GPUs. As someone whose preferred dev box has been osx for ~20 years, even when at MS, I was biased against Windows for most dev... but no longer.
- qbasic_forever 4y agoDocker is under a commercial license and if you use it at a company or work you need to now pay $5 a person a month: https://www.docker.com/pricing/ https://www.docker.com/pricing/ This changed in the last year, previously docker was free to use personally or at non enterprise scale work/office.
- k8sToGo 4y agoIsn't that only docker desktop? AFAIK docker cli and docker daemon are still free.
- qbasic_forever 4y agoYeah, but there's no release of docker daemon for mac or windows. You have to run a linux VM and install and use it there. Docker desktop basically wraps that VM process up into a little gui app. If you're willing to do it yourself then yeah a simple virtualbox VM can run docker without issues or license fees.
- girvo 4y agoI guess it’s time to go back to the old boot2docker xhyve setup I used to have!
- dicknuckle 4y agoor just use Podman.
- DangitBobby 4y agoFrom what I read, the "Personal" $0 tier still has "small businesses" listed, and the little info tooltip for Docker Desktop also explicitly mentions "small businesses." This can be found at the very bottom of that page: > Docker Desktop can be used for free as part of a Docker Personal subscription for: small companies (fewer than 250 employees AND less than $10 million in annual revenue), personal use, education, and non-commercial open source projects.
- op00to 4y agoDo you know if you need a license for that docker desktop you’re running?
- rantoie 4y agoI've been using podman for a year now and I didn't even realize it until I looked and saw that I had a symlink for 'docker' -> podman.
- Klasiaster 4y agoIt's possible to run podman in podman in podman in …, which is nice if you containerize the build system but don't want to pack everything into one large image nor want to divide it into stages called by some main script on the host.
- Klasiaster 4y agoSome extra args needed, though: podman run -ti --rm --security-opt seccomp=unconfined --security-opt label=disable --cap-add SYS_ADMIN --env STORAGE_DRIVER=vfs quay.io/podman/stable sh -c 'podman run -ti --rm --security-opt seccomp=unconfined --security-opt label=disable --cap-add SYS_ADMIN --env STORAGE_DRIVER=vfs quay.io/podman/stable sh -c "podman run --rm hello-world"'