5 步快速在 Docker 容器中运行 Windows:从环境自检到 RDP 上线
【免费下载链接】windowsWindows inside a Docker container.项目地址: https://gitcode.com/GitHub_Trending/wi/windows
做兼容性测试需要一台 Windows,装虚拟机又太繁琐?Dockur/Windows 把完整 Windows 装进 Docker 容器:自动下载官方 ISO、无人值守安装,启动后浏览器或 RDP 即可接入。
最快上手:在 Docker 容器中安装 Windows 的最小配置
推荐直接用 Docker Compose 拉起。写好 compose 文件,容器会自动完成 ISO 下载与全部安装步骤,装完后打开 8006 端口的 Web 查看器即可看到桌面:
services: windows: image: dockurr/windows environment: VERSION: "11" devices: - /dev/kvm - /dev/net/tun cap_add: - NET_ADMIN ports: - 8006:8006 - 3389:3389/tcp volumes: - ./windows:/storage启动后在浏览器访问http://127.0.0.1:8006,全程无需手动操作。安装完成后建议改用 RDP:任意微软远程桌面客户端连接容器 IP,账号Docker,密码admin,体验明显好于 Web 查看器。
其余部署方式,按需取用:
- Docker CLI:
docker run加同样参数(--device=/dev/kvm、-e VERSION=11等) - Kubernetes:对本仓库的 kubernetes.yml 执行
kubectl apply -f - 桌面应用:WinBoat、WinPodX、WinApps 均以该容器为后端
- 云端:GitHub Codespaces 直接打开
硬性环境依赖与 KVM 验证命令
✅ 部署前先确认以下硬性条件:
- Linux 主机上安装 Docker 或 Podman,且支持 KVM 硬件虚拟化
- 或在 Windows 11 上使用 Docker Desktop,并开启嵌套虚拟化
- 至少 2 GB 可用内存
- 至少 32 GB 空闲磁盘空间
注意:Linux、macOS 及 Windows 10 上的 Docker Desktop 不会向容器暴露 KVM,均不受支持。
验证命令:
sudo kvm-ok正常环境会输出KVM acceleration can be used,也可以用ls -l /dev/kvm确认设备节点存在。
Windows 版本与核心参数速查
版本由VERSION环境变量决定,默认安装 Windows 11 Pro。常用取值:
| 值 | 系统版本 | 镜像大小 |
|---|---|---|
11 | Windows 11 Pro | 7.9 GB |
11l | Windows 11 LTSC | 4.7 GB |
10 | Windows 10 Pro | 5.7 GB |
10l | Windows 10 LTSC | 4.6 GB |
7u | Windows 7 Ultimate | 3.1 GB |
xp | Windows XP Professional | 0.6 GB |
2025 | Windows Server 2025 | 7.6 GB |
2022 | Windows Server 2022 | 6.0 GB |
tiny11 | Tiny11 | 5.3 GB |
reactos | ReactOS | 0.1 GB |
此外还提供 Windows 8.1、Vista、95/98/ME、2000 至 2003 等完整清单;把VERSION指向一个 ISO 的 URL 即可安装自定义镜像。
资源与网络相关的关键默认值:
| 参数 | 默认值 | 说明 |
|---|---|---|
CPU_CORES | 2 | 虚拟 CPU 核心数,可设half或max |
RAM_SIZE | 4G | 分配给 Windows 的内存,可设half或max |
DISK_SIZE | 64G | 主磁盘容量 |
WEB_PORT | 8006 | Web 查看器端口 |
NETWORK | 自动 | 网络模式:nat、user等 |
USERNAME/PASSWORD | Docker/admin | Windows 账号凭据 |
AUDIO | N | 是否向 Web 查看器流送音频 |
完整变量清单(磁盘缓存、内存气球、启动模式等)见 docs/environment.md。仓库的assets/目录还存放着每个版本对应的自动安装脚本,这就是"无人值守"的实现来源。
高频调优配置:资源、磁盘与自定义安装
🔧 实际使用中改动最多的三项配置如下。
1. CPU 与内存:默认 2 核 4 GB,轻量使用足够,重负载按需上调:
environment: RAM_SIZE: "8G" CPU_CORES: "4"两个变量都接受half、max,含义为主机资源的一半或全部。
2. 磁盘扩容与多磁盘:
environment: DISK_SIZE: "256G" DISK2_SIZE: "32G"对已有磁盘调大DISK_SIZE不会丢数据,但新增空间以未分配状态出现,需在 Windows 磁盘管理里手动扩展分区;每加一块DISK2_SIZE起,需对应挂载/storage2、/storage3卷。
3. 安装后自动执行:用COMMAND在安装最后一步跑单条命令,或把含install.bat的目录挂到/oem,内容会复制到C:\OEM并自动执行:
volumes: - ./example:/oem文件共享默认开启:安装完成后桌面会出现Shared文件夹,即主机/shared挂载目录,在 Windows 内显示为Z:盘。LANGUAGE、KEYBOARD、DISPLAY(切 VNC)、BALLOONING(动态回收内存)等其余选项可查 docs/environment.md。
三类典型使用场景
兼容性测试——同一套软件要在多代 Windows 上验证时,只需换版本号:
- 拉起
7u、xp等老系统验证遗留软件,测完即弃 - 用 LTSC 或 Server 版本核对服务场景下的行为差异
- 配合
COMMAND或install.bat脚本化初始化,快速批量构建同构测试机
企业域环境——容器在安装阶段就能加域,适合做域控和桌面标准化实验:
DOMAIN指定域名,DOMAIN_OU指定计算机账户所在的 OU- 默认
Docker账户会被加入本地 Administrators 组,安装后自动登录 - 非域场景可用
WORKGROUP指定工作组
教学演示——无人值守安装本身就是个现成演示素材:
- 新环境几十分钟内可用,省去手工安装环节
- 用 RDP 或 Web 查看器给学生演示系统操作
- 课件通过
Shared文件夹直接在宿主机与容器间传递
故障排查:四个高频问题的定位与解决
现象:容器报 KVM 不可用,运行极慢可能原因:硬件虚拟化未开启,或宿主机本身是虚拟机且未开嵌套虚拟化。 步骤:1) 运行sudo kvm-ok确认状态;2) 进 BIOS/UEFI 检查Intel VT-x或AMD-V是否启用;3) VPS 用户向服务商确认是否支持嵌套虚拟化;4) 若 kvm-ok 通过仍报错,临时在 compose 中加privileged: true排除设备权限问题。
现象:Web 查看器卡顿、不支持剪贴板可能原因:Web 查看器定位就是安装阶段使用,响应速度天然不如 RDP。 步骤:安装完成后改用微软远程桌面客户端,以Docker/admin连接容器 IP;Android、iOS 有官方客户端,Linux 可用 FreeRDP。
现象:调大DISK_SIZE后 Windows 里容量没变可能原因:扩出的空间以未分配区域存在,不会自动并入分区。 步骤:1) 确认容器正常启动、新容量已生效;2) 在 Windows 磁盘管理中手动扩展基本卷。
现象:首次安装失败,或 USB 存储设备数据被清空可能原因:安装未完成就直通 USB 大容量存储,设备被误当系统盘格式化。 步骤:1) 容器首次启动时不要直通任何 USB 存储;2) 安装完成后再用lsusb查询设备 ID,通过ARGUMENTS以usb-host方式直通。
那台做兼容性测试的 Windows,现在只需一个 compose 文件:不装虚拟机、不手工安装,一个容器就是一台测试机。Dockur/Windows 把"装好一套完整 Windows"压缩成一次docker compose up,版本、资源、网络都是环境变量可控。下次需要一次性的 Windows 环境时,容器随时可以拉起。
【免费下载链接】windowsWindows inside a Docker container.项目地址: https://gitcode.com/GitHub_Trending/wi/windows
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考