在 Docker 里运行 Windows 容器:KVM 加速 + 浏览器直连的轻量方案
2026/8/30 9:35:58 网站建设 项目流程

在 Docker 里运行 Windows 容器:KVM 加速 + 浏览器直连的轻量方案

【免费下载链接】windowsWindows inside a Docker container.项目地址: https://gitcode.com/GitHub_Trending/wi/windows

手头有个只在 Win7 上跑的老程序需要回归验证,但你不想在宿主机上装虚拟机、占几块磁盘空间。Dockur Windows 容器(dockurr/windows)把整套 QEMU 虚拟化装进一个 Docker 容器:镜像里自带 QEMU 和自动应答脚本,拉起来后自动从官方渠道下载 Windows ISO 并完成无人值守安装,装完浏览器打开就能操作。

🖥️ 它解决了什么问题

传统路径是宿主机装 KVM/QEMU,手工下 ISO、手工点安装,版本一多维护就乱了。这个项目把这些步骤收敛成一条 compose 命令:容器负责下载、应答安装、配置网络和共享,你只管访问端口。它依赖宿主机的 KVM 做硬件加速(KVM 是 Linux 内核自带的虚拟化引擎,让虚拟机直接跑在 CPU 的虚拟化指令上,性能接近原生),而不是纯软件模拟,所以日常使用不卡。

🔍 KVM 环境检查

先确认宿主机支持虚拟化,否则容器内没有加速、体验会非常差。在 Linux 宿主机上执行:

sudo kvm-ok

输出KVM acceleration can be used即可。不满足时去 BIOS 确认 VT-x / AMD-V 已开启;如果你的宿主机本身是 VPS,多数云厂商不提供嵌套虚拟化,这条路走不通。另外 Linux 上的 Docker Desktop 通过 VM 转发,无法直出 /dev/kvm,同样不支持。

🐳 用 Compose 文件启动 Windows 容器

最简 compose 配置如下,./windows存磁盘镜像和下载文件,建议放在有 32 GB 以上空闲空间的磁盘上:

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

docker compose up -d之后浏览器访问http://127.0.0.1:8006,等待自动安装完成出现桌面即可。系统版本由VERSION环境变量决定:11是 Windows 11 Pro(默认),10为 Win10 Pro,老系统支持7uxp乃至95,服务器版对应2016~2025,完整取值见仓库的 docs/environment.md。

⚙️ 调整磁盘、CPU、内存与共享目录

磁盘默认 64 GB,改大用DISK_SIZE(也支持给已存在的磁盘扩容,新增空间需在 Windows 磁盘管理里手动扩展分区):

environment: DISK_SIZE: "256G"

CPU 和内存默认 2 核 / 4 GB:

environment: CPU_CORES: "4" RAM_SIZE: "8G"

宿主机共享目录挂到/shared,安装完成后桌面会出现 Shared 文件夹(同时映射为 Z: 盘):

volumes: - ./example:/shared

🔗 Web 查看器与 RDP 连接

8006 的 Web 查看器主要服务于安装阶段——浏览器打开就能看到进度,不用装任何客户端,但流畅度一般且不支持剪贴板。装完之后的日常使用建议走 3389 端口的 RDP:任意微软远程桌面客户端,用户名Docker,密码admin,音频和剪贴板都正常。网络默认是共享宿主机 IP 的 bridge 模式,需要让 Windows 拥有独立局域网 IP 时可用 macvlan,一句话就能配置,细节看 readme 的 FAQ。

👥 适合谁用

典型使用者是需要在多个 Windows 版本上跑兼容性测试的 QA、想隔离运行不受信任程序的开发者,或者教学演示场景——容器随时销毁重建,不怕装坏。局限也要说清:它跑在 x86 虚拟化上,GPU 直通不在常规路径里,图形密集型负载不是它的目标场景;Windows 本身仍需自备合法授权。

clone 仓库(git clone https://gitcode.com/GitHub_Trending/wi/windows)或直接拉取 dockurr/windows 镜像,按上面的 compose 起一个,十分钟之后你就有一台浏览器里的 Windows 了。

【免费下载链接】windowsWindows inside a Docker container.项目地址: https://gitcode.com/GitHub_Trending/wi/windows

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询