如果你有一台小主机,只要能安装 Docker,打开 KVM 虚拟化,就能随手安装一台 Windows 操作系统,随用随抛,从 XP 到 Windows 11,再到 arm Windows、macOS,应有尽有。
甚至,你可以用这台 Windows 来给主机刷 BIOS。是的,这大概是小主机里极少数的还需要 Windows 的场景 😂
小主机就是那种尺寸很小、功耗很低的设备,一般用来当旁路由、NAS、影音服务器。基本上不会用来装 Windows,毕竟没啥用啊。
但是,如果你想,那就可以。
sudo apt install cpu-checker sudo kvm-ok
如果在小主机上运行了 kvm-ok
没有出现 not support 字样,那么恭喜你,可以继续了。
这个项目就叫 Windows,自身大小只有129.7MB,不带系统镜像。但是它会从微软官方下载镜像,非激活版本,无任何版权材料,可放心食用。
(上面这句话的意思是需要用户自行解决激活 Windows 的事情)
然后就是经典的 Docker 命令:
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
)
只需要以上一行,就可以打开浏览器访问 http://127.0.0.1:8006/ 查看安装进度了,默认安装 Windows 11 Pro:
整个安装过程将完全自动,最终你会直接看到桌面:
如果你想安装其他操作系统,只需要在上面的命令行,添加 -e VERSION="xp"
就可以了。
以下是支持的操作系统,看到 Windows XP 只有 600MB,真好:
Value | Version | Size |
---|---|---|
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 文件,按需删减,然后 docker-composeup -d
运行即可:
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 #自动获取IP地址 # - /dev/sdb:/disk1 #直通磁盘 # - /dev/bus/usb #直通USB device_cgroup_rules: #自动获取IP地址 - 'c *:* rwm' #自动获取IP地址 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 客户端,比如微软自己的 Windows App 客户端进行连接,默认使用用户名 Docker
和密码 admin
。
但这是另外两个项目了:windows-arm、macos
最后问题来了,你有小主机吗?
原文:https://www.appinn.com/windows-inside-a-docker-container/