Zurück zu den Updates
New releaseJul 26, 2026

windows v6.03

Führen Sie Windows in einem Docker-Container mit KVM-Beschleunigung, automatischer Installation und anpassbaren Ressourcen aus. Unterstützt mehrere Windows-Versionen, USB-Passthrough und macvlan-Netzwerke.

Teilen

Windows

Build Version Size Package Pulls

Windows in einem Docker-Container.

Funktionen ✨

  • Führt Windows in einem Docker-Container aus
  • Automatischer Download und Installation ohne manuelle Eingriffe
  • Unterstützt moderne und ältere Windows-Versionen
  • Nahezu native Leistung mit KVM-Beschleunigung
  • Anpassbare Zuweisung von CPU, Arbeitsspeicher und Speicherplatz
  • Dynamische Speicherzuweisung mit Memory Ballooning
  • USB-Durchreichung und Freigabe von Host-Ordnern
  • Unterstützt NAT-, User-Mode-, macvlan- und macvtap-Netzwerke

Video 📺

YouTube

Verwendung 🐳

Docker Compose:
services:
  windows:
    image: dockurr/windows
    container_name: windows
    environment:
      VERSION: "11"
    devices:
      - /dev/kvm
      - /dev/net/tun
    cap_add:
      - NET_ADMIN
    ports:
      - 8006:8006
      - 3389:3389/tcp
      - 3389:3389/udp
    volumes:
      - ./windows:/storage
    restart: always
    stop_grace_period: 2m
Docker CLI:
docker run -it --rm --name windows -e "VERSION=11" -p 8006:8006 --device=/dev/kvm --device=/dev/net/tun --cap-add NET_ADMIN -v "${PWD:-.}/windows:/storage" --stop-timeout 120 docker.io/dockurr/windows
Kubernetes:
kubectl apply -f https://raw.githubusercontent.com/dockur/windows/refs/heads/master/kubernetes.yml
GitHub Codespaces:

In GitHub Codespaces öffnen

Grafischer Installer:

WinBoat herunterladen

Anforderungen ⚙️

  • Docker oder Podman auf einem Linux-Host mit KVM-Unterstützung.
  • Docker Desktop oder Podman (Desktop) unter Windows 11 mit aktivierter verschachtelter Virtualisierung.
  • Mindestens 4 GB verfügbarer Arbeitsspeicher (RAM).
  • Mindestens 64 GB freier Speicherplatz.

[!NOTE] Docker Desktop unter Linux, macOS und Windows 10 bietet Containern derzeit keinen KVM-Zugriff und wird daher nicht unterstützt.

FAQ 💬

Wie verwende ich es?

Sehr einfach! Diese Schritte sind durchzuführen:

  • Starten Sie den Container und verbinden Sie sich über Ihren Webbrowser mit Port 8006.

  • Lehnen Sie sich zurück und entspannen Sie sich, während die Magie passiert – die gesamte Installation läuft vollautomatisch ab.

  • Sobald Sie den Desktop sehen, ist Ihre Windows-Installation einsatzbereit.

Genießen Sie Ihren brandneuen Computer und vergessen Sie nicht, diesem Repository einen Stern zu geben!

Wie wähle ich die Windows-Version aus?

Standardmäßig wird Windows 11 Pro installiert. Sie können jedoch die Umgebungsvariable VERSION zu Ihrer Compose-Datei hinzufügen, um eine alternative Windows-Version zum Download anzugeben:

environment:
  VERSION: "10"

Wählen Sie aus den folgenden Werten:

WertVersionGröße
11Windows 11 Pro7.9 GB
11lWindows 11 LTSC4.7 GB
11eWindows 11 Enterprise6.6 GB
10Windows 10 Pro5.7 GB
10lWindows 10 LTSC4.6 GB
10eWindows 10 Enterprise5.2 GB
8eWindows 8.1 Enterprise3.7 GB
7uWindows 7 Ultimate3.1 GB
vuWindows Vista Ultimate3.0 GB
xpWindows XP Professional0.6 GB
2kWindows 2000 Professional0.4 GB
2025Windows Server 20257.6 GB
2022Windows Server 20226.0 GB
2019Windows Server 20195.3 GB
2016Windows Server 20166.5 GB
2012Windows Server 20124.3 GB
2008Windows Server 20083.0 GB
2003Windows Server 20030.6 GB

[!TIP] Für die Installation von ARM64-Versionen von Windows verwenden Sie dockur/windows-arm.

Wie ändere ich den Speicherort?

Um den Speicherort zu ändern, fügen Sie den folgenden Bind-Mount in Ihre Compose-Datei ein:

volumes:
  - ./windows:/storage

Ersetzen Sie den Beispielpfad ./windows durch den gewünschten Speicherordner oder ein benanntes Volume.

Wie ändere ich die Größe der Festplatte?

Um die Standardgröße von 64 GB zu erweitern, fügen Sie die Einstellung DISK_SIZE zu Ihrer Compose-Datei hinzu und legen Sie die gewünschte Kapazität fest:

environment:
  DISK_SIZE: "256G"

[!TIP] Dies kann auch verwendet werden, um eine vorhandene Festplatte ohne Datenverlust auf eine größere Kapazität zu vergrößern. Allerdings müssen Sie danach die Festplattenpartition manuell erweitern, da der hinzugefügte Speicherplatz als nicht zugeordnet angezeigt wird.

Wie teile ich Dateien mit dem Host?

Nach der Installation befindet sich ein Ordner namens Shared auf Ihrem Desktop, der zum Austauschen von Dateien mit dem Host-Rechner verwendet werden kann.

Um einen Ordner auf dem Host für diesen Zweck auszuwählen, fügen Sie den folgenden Bind-Mount in Ihre Compose-Datei ein:

volumes:
  -  ./example:/shared

Ersetzen Sie den Beispielpfad ./example durch Ihren gewünschten Freigabeordner, der dann als Shared sichtbar wird.

Wie ändere ich die Anzahl der CPU-Kerne oder die Menge an RAM?

Standardmäßig darf Windows 2 CPU-Kerne und 4 GB RAM verwenden.

Wenn Sie dies anpassen möchten, können Sie die gewünschte Menge mithilfe der folgenden Umgebungsvariablen festlegen:

environment:
  RAM_SIZE: "8G"
  CPU_CORES: "4"

Wie konfiguriere ich Benutzername und Passwort?

Standardmäßig wird ein Benutzer namens Docker erstellt; dessen Passwort lautet admin.

Wenn Sie während der Installation andere Anmeldedaten festlegen möchten, können Sie diese in Ihrer Compose-Datei konfigurieren:

environment:
  USERNAME: "bill"
  PASSWORD: "gates"

Wie wähle ich die Windows-Sprache aus?

Standardmäßig wird die englische Version von Windows heruntergeladen.

Sie können jedoch die Umgebungsvariable LANGUAGE zu Ihrer Compose-Datei hinzufügen, um eine alternative Sprache für den Download anzugeben:

environment:
  LANGUAGE: "French"

Sie können zwischen Folgendem wählen: 🇦🇪 Arabic, 🇧🇬 Bulgarian, 🇨🇳 Chinese, 🇭🇷 Croatian, 🇨🇿 Czech, 🇩🇰 Danish, 🇳🇱 Dutch, 🇬🇧 English, 🇪🇪 Estonian, 🇫🇮 Finnish, 🇫🇷 French, 🇩🇪 German, 🇬🇷 Greek, 🇮🇱 Hebrew, 🇭🇺 Hungarian, 🇮🇹 Italian, 🇯🇵 Japanese, 🇰🇷 Korean, 🇱🇻 Latvian, 🇱🇹 Lithuanian, 🇳🇴 Norwegian, 🇵🇱 Polish, 🇵🇹 Portuguese, 🇷🇴 Romanian, 🇷🇺 Russian, 🇷🇸 Serbian, 🇸🇰 Slovak, 🇸🇮 Slovenian, 🇪🇸 Spanish, 🇸🇪 Swedish, 🇹🇭 Thai, 🇹🇷 Turkish und 🇺🇦 Ukrainian.

Wie wähle ich das Tastaturlayout aus?

Wenn Sie ein Tastaturlayout oder eine Region einrichten möchten, die nicht der Standard für Ihre ausgewählte Sprache ist, können Sie die Variablen KEYBOARD und REGION wie folgt hinzufügen:

environment:
  REGION: "en-US"
  KEYBOARD: "en-US"

Wie installiere ich ein benutzerdefiniertes Image?

Um ein nicht unterstütztes ISO-Image herunterzuladen, geben Sie dessen URL in der Umgebungsvariable VERSION an:

environment:
  VERSION: "https://example.com/win.iso"

Alternativ können Sie den Download überspringen und stattdessen eine lokale Datei verwenden, indem Sie sie auf diese Weise in Ihrer Compose-Datei binden:

volumes:
  - ./example.iso:/custom.iso

Ersetzen Sie den Beispielpfad ./example.iso durch den Dateinamen Ihrer gewünschten ISO-Datei. Der Wert von VERSION wird in diesem Fall ignoriert.

Wie führe ich ein Skript nach der Installation aus?

Um nach der Installation ein eigenes Skript auszuführen, erstellen Sie eine Datei mit dem Namen install.bat und legen Sie sie zusammen mit allen benötigten zusätzlichen Dateien (z. B. zu installierender Software) in einem Ordner ab.

Binden Sie diesen Ordner dann wie folgt in Ihre Compose-Datei ein:

volumes:
  -  ./example:/oem

Der Beispielordner ./example wird nach C:\OEM kopiert, und die Datei install.bat in diesem Ordner wird während des letzten Schritts der automatischen Installation ausgeführt.

Wie führe ich eine manuelle Installation durch?

Es wird empfohlen, bei der automatischen Installation zu bleiben, da sie verschiedene Einstellungen anpasst, um häufige Probleme bei der Ausführung von Windows in einer virtuellen Umgebung zu vermeiden.

Wenn Sie jedoch darauf bestehen, die Installation manuell durchzuführen (auf eigenes Risiko), fügen Sie Ihrer Compose-Datei die folgende Umgebungsvariable hinzu:

environment:
  MANUAL: "Y"

Wie verbinde ich mich über RDP?

Der Web-Viewer ist hauptsächlich für die Verwendung während der Installation gedacht, da er weniger reaktionsschnell als RDP ist und Funktionen wie die gemeinsame Nutzung der Zwischenablage nicht unterstützt.

Für ein besseres Erlebnis können Sie sich also mit einem beliebigen Microsoft-Remotedesktop-Client mit der IP des Containers verbinden, und zwar mit dem Benutzernamen Docker und dem Passwort admin.

Einen RDP-Client für Android gibt es im Play Store und einen für iOS im Apple Store. Für Linux können Sie FreeRDP verwenden, und unter Windows geben Sie einfach mstsc in das Suchfeld ein.

Wie aktiviere ich Audio?

Audio ist standardmäßig deaktiviert, es sei denn, Sie verwenden RDP. Um es an den Browser zu streamen, fügen Sie die folgende Umgebungsvariable hinzu:
environment:
  AUDIO: "Y"

Aktivieren Sie dann im Web-Viewer unter Einstellungen → Erweitert die Option Audio. Der Stream ist nur aktiv, solange diese Option aktiviert ist, und verbraucht ansonsten keine zusätzliche Bandbreite.

Wie weise ich dem Container eine individuelle IP-Adresse zu?

Standardmäßig verwendet der Container Bridge-Netzwerke, bei denen die IP-Adresse mit dem Host geteilt wird.

Wenn Sie dem Container eine individuelle IP-Adresse zuweisen möchten, können Sie wie folgt ein macvlan-Netzwerk erstellen:

docker network create -d macvlan \
    --subnet=192.168.0.0/24 \
    --gateway=192.168.0.1 \
    --ip-range=192.168.0.100/28 \
    -o parent=eth0 vlan

Ändern Sie diese Werte unbedingt so, dass sie zu Ihrem lokalen Subnetz passen.

Nachdem Sie das Netzwerk erstellt haben, ändern Sie Ihre Compose-Datei wie folgt:

services:
  windows:
    container_name: windows
    ..<snip>..
    networks:
      vlan:
        ipv4_address: 192.168.0.100

networks:
  vlan:
    external: true

Ein zusätzlicher Vorteil dieses Ansatzes ist, dass Sie kein Port-Mapping mehr durchführen müssen, da standardmäßig alle Ports freigegeben werden.

[!IMPORTANT]
Diese IP-Adresse ist vom Docker-Host aus nicht erreichbar, da macvlan von Natur aus keine Kommunikation zwischen den beiden zulässt. Wenn dies ein Problem darstellt, müssen Sie als Workaround ein zweites macvlan erstellen.

Wie kann Windows eine IP-Adresse von meinem Router beziehen?

Nachdem Sie den Container für macvlan konfiguriert haben, kann Windows Teil Ihres Heimnetzwerks werden, indem es wie ein echter PC eine IP von Ihrem Router anfordert.

Um diesen Modus zu aktivieren, in dem der Container und Windows separate IP-Adressen haben, fügen Sie Ihrer Compose-Datei die folgenden Zeilen hinzu:

environment:
  DHCP: "Y"
devices:
  - /dev/vhost-net
device_cgroup_rules:
  - 'c *:* rwm'

Wie füge ich mehrere Festplatten hinzu?

Um zusätzliche Festplatten zu erstellen, ändern Sie Ihre Compose-Datei wie folgt:

environment:
  DISK2_SIZE: "32G"
  DISK3_SIZE: "64G"
volumes:
  - ./example2:/storage2
  - ./example3:/storage3

Wie reiche ich eine Festplatte durch?

Sie können Festplatten-Geräte oder Partitionen direkt durchreichen, indem Sie sie auf diese Weise zu Ihrer Compose-Datei hinzufügen:

devices:
  - /dev/sdb:/disk1
  - /dev/sdc1:/disk2

Verwenden Sie /disk1, wenn es Ihr Hauptlaufwerk werden soll (das während der Installation formatiert wird), und /disk2 und höher, um sie als sekundäre Laufwerke hinzuzufügen (die unangetastet bleiben).

Wie reiche ich ein USB-Gerät durch?

Um ein USB-Gerät durchzureichen, ermitteln Sie zunächst seine Vendor- und Produkt-IDs mit dem Befehl lsusb und fügen Sie sie dann wie folgt zu Ihrer Compose-Datei hinzu:

environment:
  ARGUMENTS: "-device usb-host,vendorid=0x1234,productid=0x1234"
devices:
  - /dev/bus/usb

[!WARNING]
Das Hinzufügen eines USB-Massenspeichergeräts vor Abschluss der Windows-Installation kann dazu führen, dass diese fehlschlägt. Oder schlimmer: Das Laufwerk kann als Systemfestplatte formatiert werden, und alle Ihre Daten gehen verloren! Halten Sie sie daher beim ersten Start des Containers immer getrennt.

Sind das alle verfügbaren Optionen?

Nein. Eine vollständige Übersicht aller unterstützten Einstellungen finden Sie auf der Seite Umgebungsvariablen.

Wie überprüfe ich, ob KVM verfügbar ist?

Stellen Sie zunächst sicher, dass Ihre Plattform und Ihre Container-Laufzeitumgebung die oben aufgeführten Anforderungen erfüllen.

Installieren Sie auf einem Linux-Host cpu-checker und führen Sie Folgendes aus:

sudo apt install cpu-checker
sudo kvm-ok

Eine funktionierende Konfiguration sollte Folgendes melden:

KVM acceleration can be used

Sie können auch überprüfen, ob das KVM-Gerät vorhanden ist:

ls -l /dev/kvm

Falls KVM nicht verfügbar ist, prüfen Sie, ob:

  • Hardware-Virtualisierung (Intel VT-x oder AMD-V) in Ihrem BIOS oder UEFI aktiviert ist.
  • Verschachtelte Virtualisierung aktiviert ist, wenn der Host selbst eine virtuelle Maschine ist.
  • Ihr VPS- oder Cloud-Anbieter verschachtelte Virtualisierung unterstützt.

Wenn kvm-ok erfolgreich ist, der Container aber weiterhin meldet, dass KVM nicht verfügbar ist, können Sie vorübergehend privileged: true zu Ihrer Compose-Datei hinzufügen, um ein Berechtigungs- oder Gerätezugriffsproblem auszuschließen.

Wie führe ich macOS in einem Container aus?

Sie können dafür dockur/macos verwenden. Es bietet viele derselben Funktionen, mit Ausnahme der automatischen Installation.

Wie führe ich eine Linux-Desktop-Umgebung in einem Container aus?

In diesem Fall können Sie qemus/qemu verwenden.

Ja, dieses Projekt enthält nur Open-Source-Code und vertreibt Windows selbst nicht. Alle im Code enthaltenen Produktschlüssel sind generische Installationsschlüssel, die von Microsoft zu Testzwecken veröffentlicht wurden, und keine gültigen Aktivierungslizenzen.

Sie sind dafür verantwortlich, dass Sie über eine gültige Windows-Lizenz verfügen und dass Ihre Nutzung den Lizenzbedingungen von Microsoft entspricht.

Sterne 🌟

Stargazers

Haftungsausschluss ⚖️

Die in diesem Projekt genannten Produktnamen, Logos, Marken und sonstigen Warenzeichen sind Eigentum ihrer jeweiligen Markeninhaber. Dieses Projekt ist nicht mit Microsoft Corporation verbunden, wird von ihr nicht gesponsert oder unterstützt.

Kategorien