Skip to main content

Docker für Windows

Erstmal Pfui!

Docker Desktop setzt die Aktivierung der Virtualisierung im BIOS voraus. Damit kann schon mal keine Windows-VM vewendet werden. Zumindest nicht unter Proxmox. Bei Azure könnte es anders sein.

Wenn es unbedingt sein muss, dann bitte statt dem teuren 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. Die folgenden Schritte können daher entfallen.

wsl --set-default-version 2

Ob cmd oder mit dem Admin-Benutzer kann unterschiedlich sein. Je nachdem, ob der Webproxy gesetzt wurde

PowerShell mit Admin-Rechten starten
wsl -install
Liste der verfügbaren Distributionen
wsl --list --online
um eine bestimmte Distribution zu installieren
wsl --install -d <DistroName>

Proxy in der WSL setzen wenn 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

Proxy muss gesetzt sein, wenn in internen Netz!

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 in VS Code installieren