12 points | by avsm 8 hours ago ago
6 comments
Article title is a bit click-baity. The article is only talking about Docker Desktop on Mac or Windows. Docker Linux have not been using microVMs for a decade.
> What if I told you that Docker Desktop has always used microVMs?
Then I would say your title is wildly misleading.
Is all of docker one “micro” VM though? Or does each container get a clean, fresh one?
It’s all one lightweight VM. Containers share the VM’s kernel.
One reason I think a distinction is made is that native Docker-in-Docker can be a real pain, but Docker in a Firecracker microVM "just works".
...*on macOS only and runs qemu as the emulator.
We know. But of course the hype of "microVMs" is just a rebranding of an existing technologies with some modifications.
Linux: KVM + Linux kernel (without extra drivers) = Firecracker "microVM".
This is what Docker uses for macOS:
macOS: QEMU + Virtualization.framework + Linux kernel (without extra drivers) = "microVM".
In reality, it is different depending on the OS that you are using.
Article title is a bit click-baity. The article is only talking about Docker Desktop on Mac or Windows. Docker Linux have not been using microVMs for a decade.
> What if I told you that Docker Desktop has always used microVMs?
Then I would say your title is wildly misleading.
Is all of docker one “micro” VM though? Or does each container get a clean, fresh one?
It’s all one lightweight VM. Containers share the VM’s kernel.
One reason I think a distinction is made is that native Docker-in-Docker can be a real pain, but Docker in a Firecracker microVM "just works".
...*on macOS only and runs qemu as the emulator.
We know. But of course the hype of "microVMs" is just a rebranding of an existing technologies with some modifications.
Linux: KVM + Linux kernel (without extra drivers) = Firecracker "microVM".
This is what Docker uses for macOS:
macOS: QEMU + Virtualization.framework + Linux kernel (without extra drivers) = "microVM".
In reality, it is different depending on the OS that you are using.