如果你有一台支持 KVM 虚拟化的小主机(平时多半拿来当旁路由、NAS、影音服务器),只要它跑得动 Docker,就能在容器里随手装一台 Windows —— 从 XP 到 Windows 11 应有尽有,随用随抛。项目地址:https://github.com/dockur/windows。
小主机一般不会去装 Windows(体积小、功耗低,装了也没什么用),但偶尔真会遇到非 Windows 不可的场景 —— 比如给主机刷 BIOS,这大概是小主机里少数的刚需。

一、先确认 KVM 虚拟化可用
sudo apt install cpu-checker
sudo kvm-ok只要 kvm-ok 的输出里没有出现 not support 字样,就可以继续。
二、一行命令跑起来
这个项目就叫 Windows,镜像本体只有 129.7 MB,不带系统镜像 —— 它会直接从微软官方下载,非激活版本、不含任何版权材料,可以放心用(也就是说,激活需要你自己解决)。
docker run -it --rm --name windows -p 8006:8006 -p 3389:3389/tcp -p 3389:3389/udp --device=/dev/kvm --device=/dev/net/tun --cap-add NET_ADMIN -v "${PWD:-.}/windows:/storage" --stop-timeout 120 dockurr/windows想让它后台运行,把 --rm 换成 -d 就行。默认安装 Windows 11 Pro,然后浏览器打开 http://127.0.0.1:8006/ 就能看安装进度:

整个安装过程完全自动,跑完直接看到桌面:

三、想装别的系统?加个环境变量
比如 -e VERSION="xp" 就是 Windows XP。支持的取值和镜像大小如下(XP 只有 600 MB,真香):
11 | Windows 11 Pro | 5.4 GB |
11l | Windows 11 LTSC | 4.7 GB |
11e | Windows 11 Enterprise | 5.3 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 | Windows 7 Ultimate | 3.1 GB |
vu | Windows Vista Ultimate | 3.0 GB |
xp | Windows XP Professional | 0.6 GB |
2k | Windows 2000 Professional | 0.4 GB |
2025 | Windows Server 2025 | 6.7 GB |
2022 | Windows Server 2022 | 6.0 GB |
2019 | Windows Server 2019 | 5.3 GB |
2016 | Windows Server 2016 | 6.5 GB |
2012 | Windows Server 2012 | 4.3 GB |
2008 | Windows Server 2008 | 3.0 GB |
2003 | Windows Server 2003 | 0.6 GB |
四、docker-compose.yml(按需删减)
services:
windows:
image: dockurr/windows
container_name: windows
environment:
CPU_CORES: "4" # CPU 核心数
RAM_SIZE: "8G" # 内存大小
VERSION: "11" # 操作系统版本
DISK_SIZE: "64" # 磁盘大小
USERNAME: "appinn" # 用户名
PASSWORD: "com" # 密码
LANGUAGE: "Chinese" # 系统语言
DHCP: "Y" # 自动获取 IP
# VERSION: "https://example.com/win.iso" # 自定义系统镜像(下载)
# MANUAL: "Y" # 手动安装
# DISK2_SIZE: "64G" # 创建第二块磁盘
# ARGUMENTS: "-device usb-host,vendorid=0x1234,productid=0x1234" # 直通 USB
devices:
- /dev/kvm
- /dev/net/tun
- /dev/vhost-net
# - /dev/sdb:/disk1 # 直通磁盘
# - /dev/bus/usb # 直通 USB
device_cgroup_rules:
- 'c *:* rwm'
cap_add:
- NET_ADMIN
ports:
- 8006:8006
- 3389:3389/tcp
- 3389:3389/udp
volumes:
- ./windows:/storage # 与主机共享文件
# - ./example.iso:/boot.iso # 自定义系统镜像(本地)
# - ./example2:/storage2 # 第二块磁盘
restart: always
stop_grace_period: 2m五、用 RDP 连进去
任何 RDP 客户端都能连(比如微软自家的 Windows App),默认用户名 Docker、密码 admin。
六、其他系统
同一个作者还有两个项目:windows-arm(ARM 版 Windows)和 macos(在 Docker 里跑 macOS)。












