54,147
stars
+9
5,134
forks
248
watchers
1,134
prs
1,055
issues
128
releases
0
discussions
README
Windows
[![Build]][build_url]
[![Version]][tag_url]
[![Size]][tag_url]
[![Package]][pkg_url]
[![Pulls]][hub_url]
Windows inside a Docker container.
Features ✨
- Runs Windows inside a Docker container
- Automatic download and hands-free installation
- Supports modern and legacy Windows releases
- Near-native performance with KVM acceleration
- Customizable CPU, memory, and storage allocation
- Dynamic memory allocation with memory ballooning
- USB passthrough and host folder sharing
- Supports NAT, user-mode, macvlan, and macvtap networking
Video 📺
Usage 🐳
Docker Compose:
yaml
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:
bash
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:
shell
kubectl apply -f https://raw.githubusercontent.com/dockur/windows/refs/heads/master/kubernetes.yml
Desktop applications
For a complete graphical desktop experience, see WinBoat, WinPodX, or WinApps. Each of these projects uses this container as its backend.
GitHub Codespaces:
Requirements ⚙️
- Docker or Podman on a Linux host with KVM support.
- Docker Desktop or Podman (Desktop) on Windows 11 with nested virtualization enabled.
- At least 2 GB of available RAM.
- At least 32 GB of free disk space.
[!NOTE]
Docker Desktop on Linux, macOS, and Windows 10 does not currently provide KVM access to containers and is therefore not supported.
FAQ 💬
How do I use it?
Very simple! These are the steps:
- Start the container and connect to port 8006 using your web browser.
- Sit back and relax while the magic happens, the whole installation will be performed fully automatically.
- Once you see the desktop, your Windows installation is ready for use.
Enjoy your brand new machine, and don't forget to star this repo!
How do I select the Windows version?
By default, Windows 11 Pro will be installed. But you can add the VERSION environment variable to your compose file, in order to specify an alternative Windows version to be downloaded:
yaml
environment:
VERSION: "10"
Select from the values below:
| Value | Version | Size |
|---|---|---|
| 11 | Windows 11 Pro | 7.9 GB |
| 11l | Windows 11 LTSC | 4.7 GB |
| 11e | Windows 11 Enterprise | 6.6 GB |
||||
| 10 | Windows 10 Pro | 5.7 GB |
| 10l | Windows 10 LTSC | 4.6 GB |
| 10e | Windows 10 Enterprise | 5.2 GB |
||||
| 8e | Windows 8.1 Enterprise | 3.7 GB |
| 7u | WindowTop issues
#22GPU Passthrough118 comments · 2024-01-15#2219[Feature]: Support Windows Nano Server10 comments · 2026-09-11#1675[Feature]: Support USB hot-plugging5 comments · 2026-03-17#2248KVM not available4 comments · 2026-10-14#2233[Feature]: Pointerlock on the codespaces version4 comments · 2026-09-29#1639feat: Multi-version management script (winctl.sh) with ARM64 support3 comments · 2026-01-29#1761[Feature]: Have sunshine installed in the images3 comments · 2026-06-05#2247[Question]: can you guys add guac2 comments · 2026-10-10
Latest release
v6.06 v6.06 2026-10-05What's Changed docs: Environment variables by @kroese in https://github.com/dockur/windows/pull/2180 build: Update QEMU base image to v7.49 by @renovate[bot] in https://github.com/dockur/windows/pull/2181 feat: Support GPU acceleration via Helios by @kroese in https://github.com/dockur/windows/pull/2183 build: Copy udfread binary from Docker image by @kroese in https://github.com/dockur/windows/pull/2184 fix: Exclude bundled QEMU binary from base image by @kroese in https://github.com/dockur/windows/pull/2185 feat: Reduce XP and 2003 recovery menu timeout by @kroese in https://github.com