Hacker News new | ask | show | jobs
by rmetzler 1731 days ago
Somehow a lot of these blog posts seem to get the fine technical details of the marketing speak wrong.

> Docker recently changed the license

From my understanding this is related to Docker Desktop not Docker. I'm pretty sure Podman can't replace Docker Desktop. This is also what the linked website says.

Or did I miss something?

And in the linked Blog post it says

> Docker was dropped from Kubernetes.

which from my understanding is also incorrect, because it's the docker-shim which is deprecated (not dropped) and Docker inc could probably make Docker Engine CRI compliant.

6 comments

It seems to me that almost no one understands the difference between the various layers of "Docker" (that is to say: Desktop, CLI, daemon, containerd, runc) and which layers tools like Podman aim to replace.
From what I've seen in all these Podman articles, I've come to the same conclusion as you.

This is how Podman fits in:

Podman (and its various components) can replace everything but parts of Docker Desktop, namely the GUI that Docker Desktop, has. For everything else, it has it's own Docker compatible CLI, an optional daemon (by default it's daemonless), there is no containerd component as it communicates directly to any OCI compatible runtime. They've also implemented their own OCI compatible runtime, crun, which is supposed to be faster than runc, and more lightweight.

I suppose for the average Joe/Jane this probably doesn't matter. They want to run a few commands the first time around to set up, and then do "start/stop/remove my container" and that's all they want to do.

Docker Desktop isn’t really about the GUI so much as the management of, and host integration with, a Linux VM for running on non-Linux OSes. Notably, there’s no Docker Desktop for Linux, only macOS and Windows.
Yep. Podman takes cares of those things using the `podman machine` sub-command. From what I understand, currently only macOS might be working, but Windows support will be coming if it's not already there.
the only issue really left is that volume mounts don't work with podman machine as of yet. The issue has been live on github for awhile, but its finally getting traction. Likely because of the recent Docker for Desktop changes.

EDIT: github link: https://github.com/containers/podman/issues/8016

AFAICT podman machine relies on VirtualBox. This would be an enormous performance and resource regression on MacOS — Docker Desktop uses the much more performant and resource-conscious native hypervisor frameworks instead.
This doesn't seem accurate.

According to a post on the podman website: "Current implementation relies on qemu which currently has some platform dependencies." [1]

I also just checked on my machine and it is indeed running on Qemu.

IIRC Qemu also has support for Apple's Hypervisor.framework.

[1] https://podman.io/community/meeting/notes/2021-04-06/#podman...

If true, also untenable since last I checked VBox doesn't plan to support ARM hosts (including the new Mac chipset)
> Notably, there’s no Docker Desktop for Linux, only macOS and Windows.

Looks like they are adding it https://twitter.com/glours/status/1438526841577357315

I quote: "A dream coming true for a lot of #linux users, @dieuthicao announced that we’ll start working on a #Linux version of @docker Desktop"

What does Docker Desktop even really offer on Linux? k8s, I guess? There are other open-source (Docker Desktop is proprietary ofc) ways to do that.

As a Linux user, far from a dream at all, really.

My understanding is that Podman is working on a "GUI" since it is one of the most requested items. Taken from the interview with the founders of Podman over on the Google Kubernetes podcast: https://kubernetespodcast.com/episode/164-podman/

ETA: Oh hey here it is: https://github.com/heyvito/podman-macos

Good to know about the GUI!

> ETA: Oh hey here it is: https://github.com/heyvito/podman-macos

This GUI isn't an official Podman application. It's a third party. Not that it's bad or anything, it's just not official.

Yeah true. They talk about a first party app on the podcast episode tho, I'm just not smart enough to find it.
> For everything else...

Except for:

  - Docker Compose (because podman-compose has a large amount of open issues https://github.com/containers/podman-compose/issues)
  - Docker Swarm (since Docker provides a lightweight orchestrator out of the box), you'd need to use something like K3s or another Kubernetes distro
  - anything that uses the Docker socket (/var/run/docker.sock), so you can forget about running anything like Portainer or any of the other tools out there
No longer true. Podman nowadays ships with an optional daemon that serves a Docker-compatible interface, so you can use docker-compose directly if that's what you want.

See for example: https://www.redhat.com/sysadmin/podman-docker-compose

That does seem better! Of course, there are a few lingering issues with support, but overall the trend is good: https://github.com/containers/podman/issues?q=is%3Aissue+is%...

Of course, there's no Swarm support, as evidenced by that very article:

> Caveats

> One known caveat is that Podman has not and will not implement the Swarm function. Therefore, if your Docker Compose instance uses Swarm, it will not work with Podman.

Feels like people will either be pigeonholed into Kubernetes for all of their deployments, or will have to migrate over to something like Hashicorp Nomad: https://www.nomadproject.io/

Curiously, it also supports Podman as a task driver: https://www.nomadproject.io/docs/drivers/podman

To be fair, podman has it's own "Docker Desktop" part, podman machine. But of course on Linux this doesn't make any sense.
Yes, but Docker won't work on Windows without having some machine-compatible integration with Hyper-V. Docker Machine was deprecated in favor of Docker Desktop:

https://docs.docker.com/machine/

For now however, you can use minikube which provides drivers for Hyper-V and hyperkit:

https://minikube.sigs.k8s.io/docs/drivers/

works whit wsl2, who is include in non pro versions of window, and i think the installer works out of the box (if you have the ubuntu/wsl2 installed)
I was never able to get docker to properly work with WSL2 without installing Docker Desktop and enabling the integration. WSL2 just seemed too buggy for my likes and I am a happy Arch Linux user.
But on Windows/Mac there really is not a way to run Docker w/o Docker Desktop installed. And that could be a thing confusing people.

Linux, yeah, I don't think there is a Desktop version for that. It's all CLI

Podman can replace docker desktop. It doesn't have the same GUI but it does have the capability to run containers via familiar CLI commands on a variety of OSes, connecting to (and in some cases provisioning through podman machine) a VM when required

I also think that it's more than safe to say that K8s is dropping Docker when they've deprecated it as a container runtime

> I also think that it's more than safe to say that K8s is dropping Docker when they've deprecated it as a container runtime

This is wrong. Docker itself is no longer a container runtime: it has spun out that capability into containerd. Kubernetes can now call Docker’s container runtime (again: containerd) directly instead of going through a redundant docker-shim.

In other words: Kubernetes has dropped Docker’s old container runtime in favor of… Docker’s new container runtime.

You can also run regular docker with vagrant instead of Docker Desktop. This seems to be the way you can replace Docker Desktop with Podman: https://www.redhat.com/sysadmin/replace-docker-podman-macos

There was Kitematic for Docker, I think it was independent, but it's owned by Docker now and they shut it down. https://github.com/docker/kitematic

It evolved to become Docker Desktop
No it didn't, Docker Desktop was already released before Docker bought Kitematic. I have receipts: https://www.zdnet.com/article/docker-reels-in-kitematic-as-i... (2015) https://en.m.wikipedia.org/wiki/Docker_(software) (Initial release: 2012)

If you mean Docker Desktop added some features from Kitematic, that's a misleading way of saying it.

Guess I don't know what I'm talking about
Hmm, I can't find an official Docker installer for Mac that's older than this (2015-08-11), and it has Kitematic. Wikipedia date is for Docker in general. I stand corrected. https://github.com/docker-archive/toolbox/commit/a7e7a070ba9...
Docker Desktop also includes a full Kubernetes distribution. It is actually the easiest way to get a local K8s cluster on Windows or Mac.

Docker desktop also includes Docker-compose (a way to chain multiple docker container together)

And of course the UI.

Podman is just replacing the basic docker CLI. I would say that podman replaces about 20% of what Docker desktop offers.

> I'm pretty sure Podman can't replace Docker Desktop.

Multiple siblings here have already mentioned that it absolutely can (and does for many).

My question is: in what way does it not? What is Docker Desktop doing for you that podman lacks? Just UI?

Volume Mount integration is the big one for me. UI is neither here nor there, but managing the VM is what Docker Desktop means for most users. Podman Machine is getting there, but not quite there yet.
Docker Desktop also includes a full Kubernetes distribution. It is actually the easiest way to get a local K8s cluster on Windows or Mac.

Docker desktop also includes Docker-compose (a way to chain multiple docker container together)

And of course the UI.

Podman is just replacing the basic docker CLI. I would say that podman replaces about 20% of what Docker desktop offers.

I think you are reading their marketing speak too charitably by assuming it contains "fine technical details". They purpousefully renamed everything to "Docker" to get people think that the desktop virtual machine offering is the same thing and this caused a lot of confusion.
It depends on what you mean by “replace” Docker Desktop, but Podman can run a VM on macOS and has replaced Docker Desktop for me. There’s no fancy (useless) UI nor Windows support yet though.
Windows works via a "Bring your own VM" approach, but since WSL exists I'd expect most Windows users would just run it there
When you install Docker desktop and already have wsl2 installed you get a pop up saying “you just want us to use wsl2?” And away you go. At least that’s what happened when I did it 6 months ago. Works great!
If you don't need to run `docker` command under Windows, install docker directly from distro repo is enough. No need to run another background service. Another benefit is it is faster to build docker images when the files are large, because it doesn't need to move files between WSL VMs.
I thought there was Windows support for Podman the same way that Docker Desktop provides Windows support -- primarily through WSL2?
AFAICT podman machine relies on VirtualBox. This would be an enormous performance and resource regression on MacOS — Docker Desktop uses the much more performant and resource-conscious native hypervisor frameworks instead.
podman machine uses qemu with Hypervisor.framework on macOS
Oh, nice! Thanks for the correction.
You are correct on both counts. Most people are not intimately familiar with the details of the Docker and Kubernetes stacks. Unscrupulous vendors have been taking advantage of this confusion to spread FUD and shine a more flattering light on their own products.