逛GitHub发现一个比较有意思的项目dockur/windows,在Docker里运行windows系统。
环境准备
- linux 系统
- doker
- docker-compose
需要检查操作系统是否支持 KVM,需要先安装 cpu-checker。
sudo apt install cpu-checker -y
执行 kvm-ok,看到下面的日志输出则说明OK:
INFO: /dev/kvm exists
KVM acceleration can be used
简单运行
启动一个“无状态”的临时的 Windows 操作系统
version: "3"
services:
windows:
image: dockurr/windows
container_name: windows
environment:
VERSION: "win11"
devices:
- /dev/kvm
cap_add:
- NET_ADMIN
ports:
- 8006:8006
- 3389:3389/tcp
- 3389:3389/udp
stop_grace_period: 2m
restart: on-failure
将上面的配置保存为 docker-compose.yml,然后使用 docker compose up 或 docker compose -d 启动服务。
系统比较大下载很慢的。
或者,你可使用自己的系统镜像:
VERSION: "https://example.com/win.iso"
也可以使用本地镜像:重命名 custom.iso 并将其放入空的 /storage 文件夹中以跳过下载。
安装之后,就可以在浏览器打开 IP:8006 进行使用了
使用技巧
更换 Windows 版本
environment:
VERSION: "win11"
可选版本
| Value | Description | Source | Transfer | Size |
|---|---|---|---|---|
win11 | Windows 11 Pro | Microsoft | Fast | 6.4 GB |
win10 | Windows 10 Pro | Microsoft | Fast | 5.8 GB |
ltsc10 | Windows 10 LTSC | Microsoft | Fast | 4.6 GB |
win81 | Windows 8.1 Pro | Microsoft | Fast | 4.2 GB |
win7 | Windows 7 SP1 | Bob Pony | Medium | 3.0 GB |
vista | Windows Vista SP2 | Bob Pony | Medium | 3.6 GB |
winxp | Windows XP SP3 | Bob Pony | Medium | 0.6 GB |
2022 | Windows Server 2022 | Microsoft | Fast | 4.7 GB |
2019 | Windows Server 2019 | Microsoft | Fast | 5.3 GB |
2016 | Windows Server 2016 | Microsoft | Fast | 6.5 GB |
2012 | Windows Server 2012 R2 | Microsoft | Fast | 4.3 GB |
2008 | Windows Server 2008 R2 | Microsoft | Fast | 3.0 GB |
core11 | Tiny 11 Core | Archive.org | Slow | 2.1 GB |
tiny11 | Tiny 11 | Archive.org | Slow | 3.8 GB |
tiny10 | Tiny 10 | Archive.org | Slow | 3.6 GB |
调整 Windows 容器资源配置
默认情况下,这个 Windows 容器会使用 vCPU x2、4GB 内存、64G 的磁盘空间,来满足 Win11 的最低安装需求。我们可以根据自己的实际需求,来动态的调整容器的硬件资源限制。
environment:
RAM_SIZE: "16G"
CPU_CORES: "8"
DISK_SIZE: "256G"
比如,在上面的配置中,我们调整 CPU 核心数到 8,内存到 16GB,磁盘到 256GB。
其它
如果是在 WSL 中部署需添加environment配置
environment:
BOOT_MODE: "windows_plain"