WSL2 mit Docker unter Windows integrieren: Ein praktischer und vollständiger Leitfaden

Letzte Aktualisierung: 29/10/2025
Autor: Holger
  • WSL 2 stellt einen Kernel bereit Linux real und beschleunigt Docker in Windows mit geringerem Ressourcenverbrauch.
  • Docker Desktop mit WSL 2-Backend vereinfacht die Integration, Lagerung und Verwaltung von VS Code.
  • Es ist möglich, Docker direkt in WSL 2 ohne Docker Desktop auszuführen, indem man DOCKER_HOST und die Sicherheitseinstellungen anpasst.
  • Verbesserte Leistung bei der Arbeit innerhalb des WSL-Dateisystems und bei aktiven WSL-Integrationen.

Integration von WSL2 mit Docker unter Windows

Wenn Sie unter Windows arbeiten und wie unter Linux entwickeln möchten, ist die Kombination aus WSL 2 und Docker eine der besten Optionen für Ihren Rechner. Diese Integration ermöglicht es Ihnen, Linux- und Windows-Container auf demselben Rechner auszuführen, weniger Ressourcen zu verbrauchen und deutlich schnellere Daemon- Startzeiten im Vergleich zu anderen, ressourcenintensiveren Alternativen zu erzielen.

Im Folgenden finden Sie eine vollständige Anleitung zur Einrichtung von Docker Desktop mit einem WSL-2-Backend . Alternativ können Sie Docker auch direkt in WSL 2 ausführen, ohne auf Docker Desktop angewiesen zu sein. Außerdem erfahren Sie, wie Sie Docker mit Visual Studio Code nutzen, erhalten Tipps zur Leistungsoptimierung, Informationen zu Speicherpfaden und finden im Abschnitt zur Fehlerbehebung häufige Fehler und deren Lösungen.

Container und WSL 2: Was Sie wissen müssen

Docker verpackt Anwendungen und ihre Abhängigkeiten in Container, sodass sie in jeder Umgebung gleich laufen . Im Gegensatz zu einer herkömmlichen virtuellen Maschine benötigt ein Container kein vollständiges Betriebssystem: Er nutzt den Host-Kernel und fügt nur die fehlenden Komponenten hinzu, wodurch die Größe reduziert und die Ausführung beschleunigt wird.

Im Vergleich zu einer virtuellen Maschine spart dieser Ansatz Speicher und CPU-Leistung, da kein vollständiges Betriebssystem ausgeführt wird . Unter Windows stellt WSL 2 einen echten Linux-Kernel mit Systemaufrufunterstützung bereit, sodass Docker nativ und mit sehr stabiler Leistung ausgeführt werden kann.

Ein weiterer entscheidender Vorteil ist die kontinuierliche Verfügbarkeit. Dank Containern und Orchestrierungsplattformen wie Kubernetes können Sie Dienste Version für Version aktualisieren , Container im laufenden Betrieb austauschen und mehrere Revisionen als Backup speichern, ohne das gesamte System herunterzufahren.

Kurz gesagt: Docker fördert konsistente Umgebungen, minimiert Abhängigkeitskonflikte und beschleunigt die Bereitstellung. In Kombination mit WSL 2 unter Windows erhalten Sie einen Linux-Workflow direkt auf Ihrem Desktop, inklusive automatischer Integration von Dateien und Ports, die für localhost freigegeben sind.

Windows-Voraussetzungen

Stellen Sie sicher, dass Ihr Windows 10/11 die Mindestanforderungen erfüllt: 64-Bit-Architektur, aktivierte Virtualisierung im BIOS/UEFI und mindestens 4 GB RAM. Bei aktuellen Systemen genügt es, WSL und dessen Virtualisierungsplattform zu aktivieren.

Um die Komponenten als Administrator über PowerShell zu aktivieren, können Sie Befehle wie „ enable WSL“ und „Virtual Machine Platform “ verwenden. Auf aktualisierten Systemen wird der Vorgang durch WSL vereinfacht:

wsl --install

Falls Sie WSL bereits installiert haben, legen Sie WSL 2 als Standard fest und überprüfen oder migrieren Sie Ihre installierten Distributionen:

wsl --set-default-version 2
wsl -l -v
wsl --set-version Ubuntu 2

Um die Standarddistribution auszuwählen, mit der die Integration erfolgen soll, können Sie den Standardwert bei Bedarf ändern:

wsl -s Ubuntu

Installieren Sie Docker Desktop mit einer WSL 2-basierten Engine

Der direkteste Weg zu einer optimalen Umgebung führt über Docker Desktop mit WSL 2 als Backend . Laden Sie das Docker Desktop-Installationsprogramm für Windows herunter, führen Sie es aus und folgen Sie den Anweisungen des Installationsassistenten. Sofern Ihr System dies unterstützt, wird die Verwendung der WSL 2-Engine automatisch ausgewählt oder Sie werden während der Installation aufgefordert, diese zu aktivieren.

  Sofortige Vorschau von Dateien mit QuickLook unter Windows und macOS

Nach dem Start von Docker Desktop öffnen Sie die Einstellungen und aktivieren im Bereich „Allgemein“ die Option „WSL 2-basierte Engine“, falls diese noch nicht aktiviert ist. Dadurch können Sie Linux-Container unter Windows ausführen, ohne das herkömmliche Hyper-V zu verwenden.

Gehen Sie anschließend zu Einstellungen > Ressourcen > WSL-Integration und aktivieren Sie die Integration für die von Ihnen verwendete(n) WSL-2-Distribution(en) (z. B. Ubuntu). Falls der Tab „WSL-Integration“ nicht angezeigt wird, überprüfen Sie, ob Sie sich im Linux-Container-Modus und nicht im Windows-Container-Modus befinden.

Um zu überprüfen, ob alles korrekt eingerichtet ist, öffnen Sie Ihre WSL-Distribution (z. B. Ubuntu) und führen Sie die folgenden Verifizierungsbefehle aus :

docker --version
docker run hello-world

Dies bestätigt, dass die CLI-Anwendung und der Daemon reagieren. Wenn Sie das Hello-World-Testimage abrufen können, funktioniert die Integration.

Entwicklung in Containern mit Visual Studio Code

Mit der Installation von WSL 2 und Docker wird die Entwicklungsumgebung mit Visual Studio Code und den drei offiziellen Erweiterungen – WSL, Dev Containers und Docker – deutlich verbessert. Jede dieser Erweiterungen trägt zu einem wichtigen Teil der Funktionalität bei, die für die Arbeit mit Containern unter Windows erforderlich ist.

Installieren Sie die WSL-Erweiterung, um Ordner Ihrer Distribution direkt in VS Code zu öffnen. So vermeiden Sie Probleme mit Pfaden, inkompatiblen Binärdateien oder Berechtigungskonflikten zwischen Systemen.

Installieren Sie Dev Containers, um Ihren Projektordner in einem Container zu öffnen und mit der in einer Dockerfile und einer devcontainer.json-Datei definierten Umgebung zu entwickeln. Dies ist eine komfortable Möglichkeit, Tools und Abhängigkeiten teamweit zu standardisieren.

Installieren Sie außerdem die Docker-Erweiterung, um Images, Container und Volumes direkt über die VS Code-Seitenleiste zu kompilieren, auszuführen und zu verwalten . Dies vereinfacht die täglichen Aufgaben erheblich, ohne dass Sie den Editor verlassen müssen.

Ein typischer Arbeitsablauf wäre: Das Projekt in WSL klonen, es öffnen mit code .und starten Sie die Aktion „Entwicklercontainer“ in der Befehlspalette, um Im Behälter wieder öffnenVS Code generiert einen .devcontainer-Ordner mit Ihrer Dockerfile und devcontainer.json, die zu Ihrem Stack (z. B. Python/Django) passen, und erstellt das Image.

Vergewissern Sie sich, dass Sie im System noch Linux verwenden. Terminal integriert mit VS Code: uname y python3 --versionSie sehen Linux (WSL 2) und die Version von Python Die Konfiguration wird vom Container definiert und kann von der in Ihrer Distribution enthaltenen abweichen. Ausführen und Debuggen (zum Beispiel ein Django-Profil), mit dem Sie Ihre Anwendung im Container ausführen und debuggen können, indem Sie auf die von mir angegebene lokale URL zugreifen, normalerweise http://127.0.0.1:8000/.

Docker ohne Docker Desktop ausführen: Direkte Installation in WSL 2

Wenn Sie Docker Desktop aus Lizenzgründen oder aufgrund persönlicher Präferenzen vermeiden möchten, können Sie Docker Engine innerhalb Ihrer WSL 2-Distribution installieren . Aktualisieren Sie unter Ubuntu die Pakete, fügen Sie das offizielle Repository hinzu und installieren Sie anschließend die erforderlichen Komponenten.

sudo apt update && sudo apt upgrade

source /etc/os-release
curl -fsSL https://download.docker.com/linux/${ID}/gpg | sudo apt-key add -
echo "deb [arch=amd64] https://download.docker.com/linux/${ID} ${VERSION_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/docker.list
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io

Um zu vermeiden, dass Sie vor jedem Befehl `sudo` hinzufügen müssen, fügen Sie Ihren Benutzer der Gruppe `docker` hinzu und melden Sie sich wieder bei der Distribution an:

  So erkennen Sie Engpässe in Windows mit Performance Analyzer (WPA)

sudo usermod -aG docker $USER

Starten Sie den Daemon bei Bedarf innerhalb von WSL 2 mit:

sudo dockerd

Wenn Sie eine Meldung wie „API listen on /var/run/docker.sock“ sehen , läuft der Server. Öffnen Sie ein weiteres Terminal in Ihrer Distribution und testen Sie, ob alles mit Folgendem antwortet:

docker run --rm hello-world

Verwendung der Docker-Befehlszeilenschnittstelle unter Windows mit Docker in WSL 2

Um Docker und Docker Compose unter Windows aufzurufen, während der Daemon in WSL 2 läuft, laden Sie docker.exe und docker-compose.exe herunter und fügen Sie sie dem PATH Ihres Windows-Benutzers hinzu. Dadurch können Sie Befehle von PowerShell oder VS Code in Windows-Terminals ausführen.

Sie können ein PowerShell -Skript erstellen, das die IP-Adresse der WSL-2-Distribution ermittelt und den Daemon über TCP startet, wobei die Umgebungsvariable DOCKER_HOST in Windows gesetzt wird. Ein Beispiel für den Ablauf wäre:

$ip = (wsl sh -c "hostname -I").Split(" ")[0]
$DOCKER_HOST = "tcp://" + $ip + ":2375"
[System.Environment]::SetEnvironmentVariable('DOCKER_HOST',$DOCKER_HOST,[System.EnvironmentVariableTarget]::User)
wsl sh -c "sudo dockerd --tls=false -H tcp://$ip"

Sie erhalten Warnungen, die darauf hinweisen, dass das Öffnen des Daemons ohne TLS unsicher ist . Diese Konfiguration ist ausschließlich für die lokale Entwicklung vorgesehen; verwenden Sie sie nicht in der Produktion. Sie können Folgendes in einem anderen PowerShell-Fenster ausprobieren:

docker version
docker container ls
docker run --rm hello-world
docker run -it --rm -p 8080:80 uzyexe/tetris

Wenn Sie mehrere Dienste orchestrieren müssen, funktioniert docker-compose weiterhin. Beispielsweise könnten Sie mit einer Beispieldatei eine datenbankgestützte Anwendung starten und die Portweiterleitung überprüfen, indem Sie localhost über den freigegebenen Port aufrufen.

Allgemeine Einstellungen in docker-compose ohne Docker Desktop

Wenn Sie ohne Docker Desktop arbeiten, stehen einige Automatisierungen nicht mehr zur Verfügung. Daher empfiehlt es sich, zwei Dinge in Ihrer docker-compose.yml-Datei anzupassen :

  • In Bänden, die das Akzentzeichen für „Heimat“ verwenden ~Ersetzen Sie es beispielsweise durch Ihren tatsächlichen Home-Pfad in WSL 2. /mnt/c/Users/tu-usuario wenn Sie von der Distribution aus auf Dateien in C: verweisen.
  • Fügen Sie den Abschnitt hinzu extra_hosts wenn Ihr Projekt von dem Alias ​​abhängt host.docker.internal:

extra_hosts:
- host.docker.internal:host-gateway

Dies hilft Ihnen, Verbindungsprobleme zwischen Containern und dem Host zu vermeiden und Funktionen nachzubilden , die Docker Desktop standardmäßig bietet.

Leistung und Best Practices mit WSL 2

Docker Desktop unter WSL 2 nutzt dynamische Speicherverwaltung , belegt nur den benötigten Speicher und beschleunigt rechenintensive Vorgänge wie Builds. Darüber hinaus ist der Kaltstart des Daemons deutlich schneller als bei Alternativen, die auf herkömmlichen VMs basieren.

Die goldene Regel: Bewahren Sie Ihre Projektdateien im WSL 2-DateisystemArbeiten von /home/tu-usuario In dieser Distribution vermeiden Sie die E/A-Einbußen, die beim Einbinden von Windows-Pfaden unter auftreten. /mnt/c für Aufgaben mit häufigem Festplattenzugriff.

Stellen Sie in Docker Desktop sicher, dass die Option „WSL 2-basierte Engine verwenden“ aktiviert ist und dass Sie unter Einstellungen > Ressourcen > WSL-Integration die korrekte Distributionsintegration ausgewählt haben. Wenn Sie dies tun und Ihre Projekte in den richtigen Pfad verschieben, werden Sie einen deutlichen Leistungsunterschied feststellen.

Falls Sie aufgrund von Unternehmensrichtlinien eine stärkere Isolation benötigen, sollten Sie den Hyper-V- Modus in Docker Desktop verwenden oder die erweiterte Containerisolation aktivieren. Für die meisten Entwicklungsszenarien bietet WSL 2 ein optimales Verhältnis zwischen Leistung und Benutzerfreundlichkeit.

  So minimieren Sie alle Fenster außer dem aktiven in Windows 11

Speicherordner und nützliche Verknüpfungen

Docker Desktop erstellt zwei interne WSL-Distributionen für Ihre Daten: docker-desktop und docker-desktop-data . Sie können bei Bedarf über UNC-Pfade von Windows aus auf deren Ordner zugreifen, um deren Inhalt zu untersuchen.

Ein praktischer Trick: Starten Sie Ihre WSL-Distribution explorer.exe . Um das aktuelle Verzeichnis im Datei-Explorer zu öffnen, können Sie auch direkt zu persistenten Mountpunkten navigieren mit:

\\wsl$\<Distro>\mnt\wsl

Ersetzen Sie <Distro> durch den Namen Ihrer Distribution, z. B. Ubuntu-24.04, um die internen Speicherorte zu finden, an denen WSL seine Volumes bereitstellt und an denen Docker Desktop Daten speichert, wenn er über WSL 2 arbeitet.

Beheben häufiger Probleme

Wenn Sie von einer früheren Version der Integration kommen, ist möglicherweise noch ein alter Docker-Kontext namens „wsl“ vorhanden, der nicht mehr verwendet wird . Überprüfen Sie Ihre Kontexte und löschen Sie ihn, um Fehler zu vermeiden.

docker context ls
docker context rm wsl

Dieser veraltete Kontext kann beim Öffnen von docker_wsl- Pipes unter Windows Fehlermeldungen verursachen . Durch das Entfernen wird die Standardkonfiguration wiederhergestellt, die sowohl unter Windows als auch unter WSL 2 funktioniert.

Falls der Abschnitt „WSL-Integration“ in Docker Desktop nicht angezeigt wird, befinden Sie sich möglicherweise im Windows-Container -Modus . Wechseln Sie über das Symbol in der Taskleiste zu Linux-Containern. Kehren Sie anschließend zu den Einstellungen zurück, um die Integration zu aktivieren.

Denken Sie daran, dass WSL das Dateisystem dem Host zugänglich macht. \\wsl$\Dies ist nicht spezifisch für Docker Desktop; es ist Teil des WSL-Interoperabilitätsmodells. Docker Desktop selbst läuft auf einer eigenen internen Distribution. docker-desktop, mit der gleichen Isolation wie jede andere WSL-Distribution; es interagiert nur dann mit anderen, wenn Sie die WSL-Integration aktivieren.

Wenn Sie Ihre Umgebung aus Sicherheitsgründen absichern möchten, sollten Sie Hyper-V oder erweiterte Container-Isolationsrichtlinien in Betracht ziehen. Für die allgemeine Entwicklung ist WSL 2 ausreichend, manche Organisationen bevorzugen jedoch je nach Risikostufe zusätzlichen Schutz.

Mit all dem oben Genannten haben Sie nun ein vollständiges Bild, um die richtige Arbeitsweise zu wählen: Nutzen Sie Docker Desktop mit der WSL 2-Engine für eine geführte und stabile Erfahrung oder installieren Sie Docker direkt auf WSL 2, um externe Abhängigkeiten zu reduzieren; wenn Sie außerdem VS Code, seine Erweiterungen und das Hosten der Projekte innerhalb des WSL-Dateisystems kombinieren, profitieren Sie von einer agilen und konsistenten Umgebung mit fein abgestimmten Leistungssteuerungen, klaren Datenpfaden und sofortigen Lösungen für häufige Fehler.