项目概述
windows 是一个将完整的 Windows 系统封装进 Docker 容器的开源项目。它的目标是用熟悉的容器工作流,提供可重复、可移植的 Windows 运行环境,服务于开发、测试与自动化等场景。项目在容器内编排虚拟化引擎,结合宿主机的硬件加速(如可用的 KVM),实现一键启动、持久化存储与平滑重启,并可通过浏览器或远程桌面进行图形访问。相较传统虚拟机管理器,它以镜像与 Compose 驱动的声明式配置交付环境,便于版本化、审计与团队共享,显著降低平台差异带来的环境漂移。其独特价值在于把“系统级虚拟化”纳入“容器式生命周期管理”,让部署、迁移与清理像运行普通服务一样简单高效。
项目统计
项目概况
42059 Stars |
3084 Forks |
42059 Watchers |
111 Issues
开源协议: MIT License |
创建于: 2024-01-14 |
更新于: 2025-09-02
技术栈
该项目主要使用 Shell 开发,占代码库的 99.1%。此外还包含 Dockerfile (0.9%)
核心功能
把完整的 Windows 放进容器,像部署服务一样启动、停止与复用,适合开发、测试、演示与临时桌面场景。
- 一条命令拉起环境,自动准备虚拟机与驱动,几分钟即可进入桌面,即开即用
- 支持多版本 Windows(如 10/11),可并行运行多个实例互不干扰,方便隔离测试
- 浏览器直连远程桌面,无需额外客户端(基于 VNC/noVNC),移动端也能访问
- 通过环境变量配置 CPU、内存、磁盘与分辨率,按需弹性分配,节省宿主资源
- 在兼容主机上启用 KVM 硬件加速,获得更接近原生的体验,图形与交互更顺滑
- 使用数据卷持久化系统与用户文件,容器重建也不丢数据,备份与迁移更从容
- 端口映射与网络隔离灵活可控,便于接入 RDP、HTTP 等服务,内外网均可用
- 脚本化构建,易于融入自动化与云原生工作流,一键集成到 CI/CD
更多功能特性正在不断完善中。
技术架构
该项目以“容器包装虚拟机”的思路,将 Windows 运行在 Docker 容器中,核心由 Shell 启动脚本驱动的 QEMU 组合构成。技术架构与设计要点如下:
- 运行时:Docker 作为分发与编排层,容器内启动 QEMU 进程;宿主支持时映射 /dev/kvm 获得接近原生的硬件加速,不支持则回退软件仿真。
- 存储:以 qcow2/raw 镜像作为系统盘与数据盘,通过 Docker 卷持久化;优先使用 virtio 提升磁盘与网络 I/O 性能。
- 网络:通过端口映射提供对外访问,可按需选择用户态或桥接网络;远程图形访问(如 VNC/RDP)依据配置启用。
- 启动流程:Shell 脚本读取环境变量(CPU/内存/磁盘/引导介质等),按需拼装 QEMU 参数并自动拉取/挂载所需资源,降低手工配置成本。
- 设计理念:用容器化封装虚拟化,获得可移植、可复现、一致的运行环境;在保证隔离性的同时追求简单部署与可观测性,并以最小必需权限进行设备映射以兼顾安全与性能。
使用指南
- 前置条件:已安装 Docker。Linux 建议启用 KVM(存在 /dev/kvm 可加速),macOS/Windows 无 KVM 也可运行但较慢。
- 快速运行(Linux/KVM):
无 KVM 可去掉 --device /dev/kvm 运行。docker run -d --name windows \ --device /dev/kvm \ -p 8006:8006 -p 3389:3389 \ -v $PWD/data:/data \ dockurr/windows - docker-compose 示例(推荐持久化与自定义资源):
启动:docker compose up -dservices: windows: image: dockurr/windows container_name: windows devices: - /dev/kvm ports: - "8006:8006" - "3389:3389" volumes: - ./data:/data environment: VERSION: "win11" RAM_SIZE: "4G" CPU_CORES: "2" DISK_SIZE: "64G" - 使用方式:
- 打开 http://localhost:8006 进入 Web 控制台,按向导完成 Windows 安装与账户设置。
- 安装完成后,可用 3389 端口通过 RDP 客户端远程连接(本机为 127.0.0.1:3389)。
- 常用命令:
- 查看日志:docker logs -f windows
- 停止/启动:docker stop windows / docker start windows
- 删除容器:docker rm -f windows(数据保存在 ./data)
总结评价
该项目将Windows以容器形式运行,本质上通过QEMU/KVM在Docker中封装虚拟机,突出一键化部署、镜像化管理与可移植性。42k+ Star体现较高关注度,社区反馈多集中在性能、硬件加速与兼容性问题。其亮点在于将复杂虚拟化流程脚本化,降低使用门槛,适合临时环境、演示、持续集成等场景。使用时应关注宿主机虚拟化能力、容器特权与资源占用,并遵守Windows许可;对长期稳定桌面或高性能图形需求,传统虚拟机/裸机更稳妥。展望上,若进一步完善GPU/USB直通、网络与自动化配置,将提升实用性与可维护性。