Docker heeft altijd microVM's gebruikt (nou ja, sinds 2016)

Er is veel te doen om "microVM's", waarbij een werklast draait met een gestripte Linux-kernel op een minimalistische VMM (Virtual Machine Monitor), zoals Firecracker (aangekondigd tijdens re:Invent 2018), bovenop een hypervisor zoals KVM of Xen. MicroVM's worden vaak afgezet tegen traditionele Linux Docker-containers en worden als veiliger beschouwd.

Maar wat als ik je vertel dat Docker Desktop altijd al microVM's heeft gebruikt?

Terug naar 2015

Toen ik in 2015 bij Docker kwam, was Docker Toolbox de standaard. Dit maakte gebruik van VirtualBox, wat een geweldig product is met veel functies. VirtualBox heeft echter zijn eigen GUI en een eigen updateproces; dat was veel meer dan we nodig hadden voor Docker.

Een bibliotheek-VMM

We wilden dat Docker aanvoelde als een native app op Mac en Windows, in plaats van een bundel van componenten. Met behulp van onze Mirage Unikernel-bibliotheken begonnen we aan de bouw van een "library VMM": een VMM die in de Docker-applicatie kon worden ingebed en die specifiek, minimaal, veilig en snel zou zijn.

De eerste versie heette HyperKit en de meest recente versie is de Docker VMM¹. De VM-kernel en het root-bestandssysteem waren eveneens minimaal en gebaseerd op het LinuxKit-project. De huidige versie is een nog verder afgeslankte en efficiëntere variant, maar conceptueel hetzelfde, vergelijkbaar met containerd/nerdbox.

Docker voor Mac in 2016

Voor Docker voor Mac (later hernoemd naar Docker Desktop) maakte deze aanpak het volgende mogelijk:

  • Rootless draaien op alle platforms: Zonder dat "rootless binnen Linux" vereist is. Omdat de gehele Linux-kernel als onbetrouwbaar wordt beschouwd, is zelfs een Linux-CVE niet problematisch.
  • Minimale apparaten: We konden de interface tussen host en VM zorgvuldig beperken, waardoor deze gemakkelijker te begrijpen en te auditeren was.
  • VPN's en netwerkbeleid: Het was eenvoudig om samen te werken met VPN's en dit later uit te breiden naar het opleggen van netwerkbeleid, zoals Registry Access Management.

En nu in 2026

De Docker microVM-technologie vormt de basis van zowel Docker Desktop als Docker Sandboxes. Docker Sandboxes stelt je in staat om zaken te doen zoals het veilig draaien van je favoriete coding agent en harness, met strikte isolatie en governance.

Om te zien wat Docker microVM's kunnen, kun je Docker Sandboxes (sbx) installeren en het commando sbx run claude proberen.

Verder lezen

Voor meer informatie over de geschiedenis van deze technologie kun je het artikel A Decade of Docker Containers (Communications of the ACM) raadplegen.

***

¹ Hoewel we ernaar streefden om alles tot een bibliotheek te maken en te koppelen aan een statisch unikernel-achtig proces, is het om technische redenen logischer om nog steeds één hostproces per VM te hebben.