Docker has always used microVMs (well since 2016)

50 pointsposted 2 days ago
by avsm

40 Comments

unsnap_biceps

2 days ago

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.

throwaway27448

2 days ago

It's still not a bad idea to reduce attack surface. A VM is much easier to harden than a kernel.

otterley

2 days ago

Of course it’s not a bad idea. It’s just a bad article.

c0balt

2 days ago

In those two cases they also use VMs because they don't really have another cheap option.

Neither XNU/Darwin nor Windows have had an oob option for running Linux images. WSL is rather new in comparison.

pjmlp

2 days ago

Windows has native support for Win32 containers though, those don't need WSL, they build up on top of jobs infrastructure.

c0balt

a day ago

Sure but almost no OSS projects build containers for Windows (to my knowledge). The same goes for XNU/darwin afaik. They may get binaries but container images often assume Linux by default.

Developers, ime, also don't really want to start building their own container images for auxiliary services like, e.g., PostgreSQL, MongoDB or MySQL.

Having virtualized Linux support means you can take the existing ecosystem and make it accessible to the other two. It also means docker itself doesn't have to fully embrace & support either which is part of why it's "cheaper".

avsm

2 days ago

> Docker Linux have not been using microVMs for a decade.

You sure could. Kata containers have been around for a long time; I remember putting them into production back in 2017 or so (and dealing with filesystem forwarding issues). https://lwn.net/Articles/755230/

unsnap_biceps

a day ago

"Could" is not the same as "always" which is what the article title is claiming.

Betelbuddy

2 days ago

Its bending history to call what before were Linux Vms inside Mac or Windows to have containers to that is a real MicroVM.

And the current Sandboxes dont offer the same security model - See Docker Sandboxes 0.42.0 security update: CVE-2026-77179 and CVE-2026-79994

https://docs.docker.com/security/security-announcements/

user_account

a day ago

right, I cringed at this claim from the article

> and considered more secure than, traditional Linux Docker containers.

yjftsjthsd-h

2 days ago

> What if I told you that Docker Desktop has always used microVMs?

Then I would say your title is wildly misleading.

segmondy

2 days ago

I was just exploring the new docker sandbox and saw that they could retain all your data in/out of the sandbox for 30 days. I wash my hand of docker, use with care. Data is gold and lots of companies are now going to be giving their "free" products as a sort of trojan horse to steal your data.

throooooo

2 days ago

I washed my hands of Docker back when they changed the licensing of Docker Desktop. Podman is fine.

otterley

2 days ago

Docker *Desktop*, not Docker Engine. Most uses of Docker, at least until Kubernetes shifted to containerd, were the latter. The reality is that most running production containers today share a kernel.

cr125rider

2 days ago

Is all of docker one “micro” VM though? Or does each container get a clean, fresh one?

firesteelrain

2 days ago

It’s all one lightweight VM. Containers share the VM’s kernel.

binsquare

2 days ago

The shared kernel/lack of isolation between the cotnainer workloads is the model that this article isn't really touching but is really important.

Because the current needs are extremely lightweight and isolated environments i.e. vm per workload rather than shared.

And there's been a lot of wonderful innovations happen there

sureglymop

a day ago

Look into the krun runtime (part of crun) if you'd like to do this.

jeswin

2 days ago

Dynamic memory hot-plugging is still not as efficient. So if you don't want strict isolation between containers or individual sandboxes around each one of them, avoid VMs to achieve the highest density per box.

LeBit

a day ago

smolvm uses only the required memory and releases what isn’t needed anymore

avsm

2 days ago

For the nostalgia seekers, I uploaded the OG Docker for Mac beta video: https://crank.recoil.org/w/3re5G972kkqjzzujxHQ3E6

I do think this was well ahead of its time. Under the hood, we designed a Linux distro called LinuxKit (https://github.com/linuxkit/linuxkit) which ran every process in its own mount namespace (including the init process), and had a deterministic build with hashes. As far as I can tell, it's still pretty hard to get this experience even with Nix in 2026.

The boot time was also quick enough to be entirely in parallel and so not be noticeable (the 'bounce time' of the application on Mac was one bounce!)

sudb

2 days ago

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".

davoneus

2 days ago

I wonder if this is due to Microsoft pushing forward with wslc in the past week or so.

I tried pure wslc for a project or two this past week. It got me 90% of the way but not all the way. Still pretty impressive, even if it is another example of extend and extinguish.

happosai

2 days ago

So what is currently the best way to run docker images in microvm these days? The article is pushing for docker sandboxes, but the "you need a docker login" makes is pretty much no-go for my use case.

kj4ips

2 days ago

I often wonder what would have happened if rkt had been more successful.

GuestFAUniverse

2 days ago

Would have been nice to properly isolate the bazillion ufw users too.

Pretty strange article considering all the Docker shortcomings.

qalmakka

2 days ago

> What if I told you that Docker Desktop has always used microVMs?

I'd say that I don't think it's that relevant? Hopefully everyone was aware that you required a VM to run Linux software on Windows and Mac, and then who would really care about what VM docker used to run development containers? The more expendable the better. Hopefully nobody is using a Windows PC with docker desktop in a production scenario - but given how utterly incompetent some people I met was, I'd not be too surprised from that

garypdx

2 days ago

Yawn. IBM/AIX's WPARs & LPARs, Sun/Solaris' dynamic system domains & zones, BSD jails. How many times are we going to pat ourselves on the back for reinventing the wheel?

bradknowles

2 days ago

Lots. Remember the first VM OS? Running on IBM mainframes? Do you remember what the name of it was? Or when that came out?

Do you remember VMS on DEC hardware? And again, which decade did that come out?

Yeah, this wheel is going to continue to be re-invented for as long as computers exist.

mech422

2 days ago

Damm...thats going waayy back - but I want to say VS/VME (VM/VME) in the early 70s and vms in the mid 70s ?

yjftsjthsd-h

2 days ago

Most of those are shared kernel, though, which is very much what you want to avoid if security is a primary goal.

happymellon

a day ago

Docker is a shared kernel.

yjftsjthsd-h

a day ago

Yes, and this article is about Docker Desktop running it in a VM with its own kernel.

happymellon

16 hours ago

Running all the containers with a shared kernel...

Yeah, if you are going to run Linux software on Mac or Windows then you'll need a VM. But security is not the reason for a VM.

rvz

2 days ago

...*on macOS only and runs qemu as the emulator.

We know. But of course the hype of "microVMs" is just a rebranding of existing technologies with some modifications, macOS needed extra virtualization technologies just for containers for years:

   Docker Desktop macOS (until 2025): QEMU + Virtualization.framework + Linux kernel (without extra drivers) = "microVM".
Now they use the native Apple virtualization libraries instead of QEMU for both containers and microVMs. [0] Linux never needed to use KVM for containers, but requires it for microVMs:

   Linux: KVM + Linux kernel (without extra drivers) = Firecracker "microVM".
In reality, it is different depending on the OS that you are using.

[0] https://www.docker.com/blog/docker-desktop-for-mac-qemu-virt...

spwa4

a day ago

The big plus of using microVMs is that a bunch of container limitations fall away. In Linux, over time people have been eliminating the limitations of containers. Chroot, network namespaces, filesystem namespaces, process namespaces, ... everything is trying to go into the direction of getting to microVMs making things more complicated at every step of the way.

But decent VM automation on VirtualBox (for the first ~5 years had MUCH better API/RPC and frankly still does than anything else) got you all that 10+ years ago.