In dit artikel legt Dave Scott uit dat Docker Desktop al veel langer gebruikmaakt van microVM-technologie dan vaak wordt aangenomen. Waar Docker vroeger afhankelijk was van VirtualBox via Docker Toolbox, heeft het team een eigen 'library VMM' ontwikkeld (zoals HyperKit en de huidige Docker VMM) in combinatie met LinuxKit.
Deze aanpak biedt verschillende cruciale voordelen:
- Veiligheid: Het maakt rootless draaien mogelijk op alle platforms, waardoor Linux-CVE's minder problematisch zijn.
- Minimalisme: De interface tussen host en VM is beperkt, wat auditing vereenvoudigt.
- Netwerkbeheer: Het verbetert de compatibiliteit met VPN's en maakt het opleggen van netwerkbeleid eenvoudiger.
Momenteel vormt deze technologie de basis voor zowel Docker Desktop als Docker Sandboxes, waarmee gebruikers bijvoorbeeld coding agents veilig en geïsoleerd kunnen draaien.
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.
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.