Windows w Dockerze – jak to działa i czy ma sens?

Projekt dockur/windows pozwala uruchomić pełnoprawny system Windows jako kontener Docker, wykorzystując pod spodem QEMU + KVM. To oznacza, że technicznie nie jest to „czysty kontener”, tylko:

VM uruchamiana wewnątrz kontenera, zarządzana automatycznie (ISO, instalacja, konfiguracja).

Bezpłatne szkolenie: Zbuduj 5 agentów AI w n8n!

Weź udział w intensywnym, praktycznym szkoleniu i naucz się tworzyć automatyzacje oraz agentów AI komunikujących się przez komunikator. W programie m.in.: RAG Chatbot, Voice Agent, Wirtualna Rada Nadzorcza, Asystentka głosowa i Claude Code Admin.

Zapisy do 23 kwietnia, 23:59

Sprawdź szczegóły: https://asdevops.pl/warsztaty/

 

 

Najważniejsze cechy:

  • automatyczne pobieranie ISO Windows
  • automatyczna instalacja systemu
  • dostęp przez przeglądarkę (VNC/web viewer)
  • dostęp przez RDP
  • wsparcie wielu wersji Windows
  • wykorzystanie KVM → wydajność bliska natywnej

Architektura (ważne do zrozumienia)

To NIE jest:

  • Windows container jak w Windows Server

To JEST:

  • QEMU VM → uruchomiona w Dockerze

Czyli stack wygląda tak:

Docker
└── Kontener dockur/windows
└── QEMU
└── Windows VM

Dlatego:

  • potrzebujesz /dev/kvm
  • potrzebujesz nested virtualization, jeśli jesteś na Proxmox

Wymagania

Minimalne

  • Linux host (Ubuntu / Debian / Proxmox VM)
  • Docker + Docker Compose
  • CPU z VT-x / AMD-V
  • dostęp do /dev/kvm

Rekomendowane

  • 4+ CPU
  • 8–16 GB RAM
  • szybki dysk (NVMe)

WAŻNE (Proxmox)

Jeśli uruchamiasz to w VM na Proxmox:

MUSISZ włączyć nested virtualization

Proxmox → ustawienia VM:

  • CPU: host
  • zaznacz:
    • Enable KVM hardware virtualization
    • Nested virtualization

By włączyć nested virtualization, przejdź do swojego node w Proxmox. Następnie Shell i wpisz poniższy kod (numer 124, to numer maszyny na której zainstalujemy docker oraz Windows:

qm set 124 --cpu host

Instalacja krok po kroku (Docker Compose)

1. Instalacja Dockera (Ubuntu-desktop)

Zainstaluj Docker

apt install curl -y

apt install sudo -y

# Add Docker's official GPG key:
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF

sudo apt update

sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

2. Sprawdzenie KVM

Przejdź do maszyny wirtualnej z zainstalowanym Ubuntu-desktop

sudo apt install cpu-checker -y
kvm-ok

Jeśli widzisz:

KVM acceleration can be used

→ OK


3. Przygotowanie katalogu

mkdir windows-docker

cd windows-docker

nano docker-compose.yml

4. docker-compose.yml

version: "3.8"services:
windows:
image: dockurr/windows
container_name: windows
environment:
VERSION: "11" <---- W nawiasach wpisujesz wersję Windowsa którą chcesz zainstalować
RAM_SIZE: "6G" <---- wpisujesz ilość ramu jaką chcesz przydzielić
CPU_CORES: "4" <---- Ustawiasz ilość rdzeni
devices:
- /dev/kvm
- /dev/net/tun
cap_add:
- NET_ADMIN
ports:
- 8006:8006 <---- Instancja webowa będzie serwowana na porcie 8006
- 3389:3389/tcp <---- Ustawiony port tcp/udp do połączenia RDP (Remote Desktop Protocol)
- 3389:3389/udp
volumes:
- ./windows:/storage
restart: always
stop_grace_period: 2m

Ten config:

  • Windows 11
  • 6 GB RAM
  • 2 CPU
  • RDP

5. Start

sudo docker compose up -d

6. Instalacja Windows (automatyczna)

  1. Otwórz:
http://IP:8006
  1. Zobaczysz instalator Windows
  2. Poczekaj (10–30 min)

Instalacja robi się sama


7. Logowanie

Domyślnie:

  • user: Docker
  • hasło: admin

Dostęp do Windows

Opcja 1 – przeglądarka

  • http://IP:8006
  • słaba jakość (tylko instalacja)

Opcja 2 – RDP (zalecane)

mstsc
  • IP: serwera
  • port: 3389

pełna wydajność + clipboard (kopiowanie) + audio


Wersje Windows

Możesz zmienić:

VERSION: "10"

Dostępne m.in.:

  • Windows 11 / 10
  • Windows Server
  • Windows 7 / XP

Zaawansowana konfiguracja

1. Więcej RAM / CPU

environment:
RAM_SIZE: "16G"
CPU_CORES: "8"

2. Inny użytkownik

environment:
USERNAME: "admin"
PASSWORD: "SuperHaslo123"

3. Folder współdzielony

volumes:
- ./shared:/shared

Widoczny w Windows jako:

Shared

4. Tryb manualnej instalacji

environment:
MANUAL: "Y"

Najczęstsze problemy

Brak /dev/kvm

Objaw:

KVM not available

Rozwiązanie:

  • sprawdź BIOS (VT-x / SVM)
  • nested virtualization w Proxmox

Nie działa na VPS

większość VPS:

  • NIE wspiera nested virtualization

Brak dostępu do portu 8006

Sprawdź:

docker logs windows

Windows się restartuje w pętli

Często:

  • za mało RAM
  • brak KVM

Wydajność – real talk

Zalety:

  • szybkie uruchomienie
  • automatyczna instalacja
  • idealne do testów

Wady:

  • to nadal VM → overhead
  • brak GPU passthrough (w większości przypadków)
  • trudniejszy networking niż w normalnym VM

Czy to ma sens w Twoim labie?

Dla Twojego setupu (Proxmox + XDR):

To jest bardzo ciekawa opcja do testów

Możesz:

  • szybko tworzyć Windowsy
  • resetować środowisko
  • testować malware / XDR
  • symulować endpointy

ALE:

produkcyjnie → lepiej klasyczne VM w Proxmox


Porównanie

Cechadockur/windowsVM (Proxmox)
Szybkość deploy⭐⭐⭐⭐⭐⭐⭐
Stabilność⭐⭐⭐⭐⭐⭐⭐⭐
Kontrola⭐⭐⭐⭐⭐⭐⭐⭐
Automatyzacja⭐⭐⭐⭐⭐⭐⭐⭐
Wydajność⭐⭐⭐⭐⭐⭐⭐⭐⭐

dockur/windows to bardzo sprytne narzędzie, które:

  • automatyzuje instalację Windows
  • działa jako VM w Dockerze
  • jest świetne do labów i testów

Idealne dla:

  • DevOps
  • pentesterów
  • labów XDR / SOC
  • środowisk testowych

Mniej idealne dla:

  • produkcji
  • środowisk wymagających GPU / wysokiej stabilności

Bezpłatne szkolenie: Zbuduj 5 agentów AI w n8n!

Weź udział w intensywnym, praktycznym szkoleniu i naucz się tworzyć automatyzacje oraz agentów AI komunikujących się przez komunikator. W programie m.in.: RAG Chatbot, Voice Agent, Wirtualna Rada Nadzorcza, Asystentka głosowa i Claude Code Admin.

Zapisy do 23 kwietnia, 23:59

Sprawdź szczegóły: https://asdevops.pl/warsztaty/

 

 

 

 

Bezpłatny dostęp do warsztatów "Zbuduj 5 agentów AI w n8n!"

X