Skip to main content

Docker für Windows

Docker Desktop setzt die Aktivierung der Virtualisierung im BIOS voraus.

Warum Docker unter Windows installieren? Wenn es unbedingt sein muss, dann bitte statt dem lizenzpflichtigen Docker Desktop, die kostenlose Alternative Rancher Desktop verwenden! Eine weitere Alternative ist Docker in einer WSL-Umgebung zu installieren. Aber alle 3 Möglichkeiten sollten nie produktiv verwendet werden.

Ein Linux mit Docker ist immer noch die stabilste und einfachste Lösung.

Anleitung Docker mit WSL (Windows Subsystem Linux)

WSL Installieren und Linux Distro auswählen

Bei Windows 10 muss noch der WSL 2 als Standard gesetzt werden. Bei Windows 11 nicht mehr.

WSL ist seit neuestem im Mircosoft-Store erhältlich.

Proxy in der WSL setzen, falls notwendig

In der WSL

export http_proxy=http://webproxy01.foo:8080
export https_proxy=http://webproxy01.foo:8080
export HTTP_PROXY=http://webproxy01.foo:8080
export HTTPS_PROXY=http://webproxy01.foo:8080

Proxy für APT setzen (permanent)

In der WSL

sudo vim /etc/apt/apt.conf.d/00proxy:
Acquire::HTTP {
  Proxy "http://webproxy01.foo:8080";
};
Acquire::HTTPS {
  Proxy "http://webproxy01.foo:8080";
};

Docker in WSL installieren

Proxy muss gesetzt sein wenn in internen Netz!

In der WSL

sudo apt-get update; sudo apt-get dist-upgrade

sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
sudo mkdir -p /etc/apt/keyrings
 
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
   
echo '# Start Docker daemon automatically when logging in if not running.' >> ~/.bashrc
echo 'RUNNING=`ps aux | grep dockerd | grep -v grep`' >> ~/.bashrc
echo 'if [ -z "$RUNNING" ]; then' >> ~/.bashrc
echo '    sudo dockerd > /dev/null 2>&1 &' >> ~/.bashrc
echo '    disown' >> ~/.bashrc
echo 'fi' >> ~/.bashrc
 
sudo usermod -aG docker $USER

Dienst ggf. manuell starten (Init, statt systemd!)

sudo service docker start
Um die Dateien besser editieren zu können ist Visual Studio Code empfehlenswert
Damit VS Code auf WSL zugreifen kann, muss die folgende Erweiterung installiert werden. Anschließend VS Code neu starten.

Remote WSL-Plugin in Visual Studio Code installieren