Führt Docker Desktop seine Container unter Windows oder in WSL2 aus?

Führt Docker Desktop seine Container unter Windows oder in WSL2 aus?

Kontext
Ich habe ein WSL2 mit Debian eingerichtet. Ich führe einige Docker-Compose-Skripte aus. Alles ist in WSL2 enthalten, außer Docker Desktop, das ich unter Windows installiert habe.

Ich habe bereits gelesen, dass es möglich ist, Docker in WSL2 ohne Docker Desktop in Windows auszuführen. Ich verstehe jedoch nicht, was im Hintergrund passiert, wenn ich Docker Desktop verwende. Insbesondere, da ich nie (wissentlich) Docker-Pakete auf der Debian-Instanz installiert habe.

Docker Desktop in Windows zeigt mir, welche Container laufen. Start und IO erfolgen in der Debian-Instanz.

Frage
Laufen die Docker-Engine/Container unter Windows oder innerhalb von WSL2?

Antwort1

Siehe die Docker-Dokumentation Docker Desktop WSL 2-Backend unter Windows:

Windows Subsystem for Linux (WSL) 2 ist ein vollständiger Linux-Kernel von Microsoft, mit dem Linux-Distributionen ohne Verwaltung virtueller Maschinen ausgeführt werden können. Mit Docker Desktop auf WSL 2 können Benutzer Linux-Arbeitsbereiche nutzen und müssen weder Linux- noch Windows-Build-Skripte verwalten. Darüber hinaus bietet WSL 2 Verbesserungen bei der Dateisystemfreigabe und der Startzeit.

Die Container laufen unter WSL2 in einer vereinfachten virtuellen Maschine. Die VM selbst wird von Hyper-V ausgeführt, das auf dem Windows-Host läuft.

Führt Docker Desktop seine Container unter Windows oder in WSL2 aus?

Die Antwort auf die Frage lautet also eigentlich: „beides“. Es läuft unter WSL2, das wiederum unter Windows läuft.

verwandte Informationen