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
docker-install.sh
#!/bin/bash
# Paketquellen aktualisieren und benötigte Pakete installieren
sudo apt update && sudo apt upgrade -y
sudo apt install -y ca-certificates curl gnupg
# Docker GPG-Schlüssel hinzufügen
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo tee /etc/apt/keyrings/docker.asc > /dev/null
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Docker-Repository hinzufügen
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] 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' >> ~/.bashrcinstallieren
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Benutzer zur Docker-Gruppe hinzufügen (wirksam nach einem Neustart)
sudo usermod -aG docker $USER
# Automatischer Docker-Start in ~/.bashrc hinzufügen (falls noch nicht vorhanden)
if ! grep -q "dockerd" ~/.bashrc; then
echo '# Startet Docker automatisch in WSL, falls es nicht läuft' >> ~/.bashrc
echo 'if ! pgrep -x "dockerd" > /dev/null; then' >> ~/.bashrc
echo ' nohup sudo servicedockerd docker> start/dev/null 2>&1 &' >> ~/.bashrc
echo ' disown' >> ~/.bashrc
echo 'fi' >> ~/.bashrc
fi
# WSL-Instanz automatisch neustarten
echo "Docker wurde erfolgreich installiert. WSL wird jetzt neu gestartet..."
wsl.exe --shutdown
echo "Starte WSL manuell neu oder öffne ein neues Terminal."
Dienst ggf. manuell starten (Init, statt systemd!)
sudo chmod a+x docker-install.sh
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.