Hilfreiche Docker/WSL2 Konfiguration

Kurze Anleitung wie man unter Windows den Ressourcenverbrauch von Docker Grenzen setzt.

Kürzlich habe ich zum ersten mal Docker für Windows in Kombination mit dem neuen Windows Subsystem for Linux (WSL2) ausprobiert. Da ich mobil arbeiten wollte nutzte ich dafür mein Windows x86 Tablet. Der Arbeitsspeicher sollte gerade so mit 4GB ausreichend sein um damit eine kleine Webanwendung mittels node.js in einem Docker Container zu entwickeln.

Windows Subsystem for Linux (WSL) 2 introduces a significant architectural change as it is a full Linux kernel built by Microsoft, allowing Linux containers to run natively without emulation. With Docker Desktop running on WSL 2, users can leverage Linux workspaces and avoid having to maintain both Linux and Windows build scripts.

Kurz nach dem Start von Doker Desktop dann die Überraschung. Der Task Manager offenbarte nichts gutes. Der Vmmen-Prozess von Hyper-V verbraucht fast allen Arbeitsspeicher.

CPU/RAM Verbrauch limitieren

Um effektiv arbeiten zu können muss der Verbrauch von CPU und Arbeitsspeicher für Docker Desktop/Hyper-V limitiert werden. Die notwendigen Konfigurationsoptionen für das WSL werden in der Datei benutzerspezifischen “.wslconfig“ vorgenommen.
Hierfür führt man folgendes in der PowerShell aus:

# fährt alle WSL2 Instanzen herunter
wsl –shutdown
notepad "$env:USERPROFILE/.wslconfig"

Hier habe ich folgende Werte eingetragen:

[wsl2]
memory=1GB   # Beschränkt den Arbeitsspeicher von WSL 2 auf maximal 1GB
processors=3 # Setzt die Anzahl virtueller Prozessoren für die WSL 2 VM

Es bietet sich aus meiner Sicht an, auch die Anzahl der Prozessoren zu beschränken damit für andere Anwendungen immer genug CPU Rechenleistung zur Verfügung steht. Die genauen Werte müssen logischerweise immer an die Umgebung angepasst werden.
Weitere Konfigurationsoptionen findet man unter: https://docs.microsoft.com/en-us/windows/wsl/wsl-config#wsl-2-settings

Ein erneuter Blick in den Task-Manager nach dem Restart von Docker Desktop zeigt, dass die Einstellungen wirksam sind.

Mit diesem Trick ist der Einsatz von Docker Desktop unter dem neuen Windows Subsystem for Linux auch auf Maschinen möglich welche eher leistungsschwach sind.