在 Docker 容器里跑 Windows:Dockur/Windows 最小部署与故障排查指南
2026/8/31 9:29:15 网站建设 项目流程

在 Docker 容器里跑 Windows:Dockur/Windows 最小部署与故障排查指南

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

Dockur/Windows 把一套 Windows 系统装进 Docker 容器:启动容器后自动下载官方 ISO 并完成安装,装好后可通过浏览器或 RDP 使用。它适合想在 Linux 上临时开一台 Windows 做测试的人。本文按实际部署顺序组织:先判断环境是否合适,再给出最短部署路径、结果验证方式和失败排查顺序,照着做可以完成一次完整部署。

先判断适不适合你的环境

适合使用:

  • 你有一台 Linux 主机,装了 Docker 或 Podman,且 CPU 支持 KVM 硬件虚拟化。
  • 需要一台可丢弃的 Windows 做软件测试、兼容性验证或教学演示,用完删掉即可。
  • 需要运行老系统(Windows 95/98/XP/7、Vista)或 Windows Server 2003 至 2025,手动装镜像麻烦。

谨慎选择:

  • 你在 Linux、macOS 或 Windows 10 上用的是 Docker Desktop:资料明确这类环境无法给容器提供 KVM 访问,不受支持。Windows 11 上的 Docker Desktop 需要先开启嵌套虚拟化才能用。
  • 宿主硬件没有 VT-x / AMD-V,或你用的 VPS、云平台不支持嵌套虚拟化。
  • 需要 GPU 图形加速的场景:该能力目前仍是实验性质。

部署前的最小检查项

开始之前,逐项确认以下条件,每项都有对应的验证方法:

检查项怎么验证通过标准
容器运行时确认已安装 Docker 或 Podman 并能正常运行能正常启动容器
KVM 加速安装cpu-checker后执行检查命令(见下)输出KVM acceleration can be used,且/dev/kvm设备存在
内存确认宿主可用内存官方要求至少 2 GB;默认给 Windows 分配 4 GB,建议按 4 GB 以上准备
磁盘确认存储目录所在分区空闲空间官方下限 32 GB;默认虚拟磁盘就是 64 GB,建议实际空闲空间明显大于此值
网络确认能访问微软官方下载源安装过程会自动下载 0.1 GB 至 7.9 GB 不等的 ISO,网络不稳会卡在下载阶段

KVM 验证命令:

sudo kvm-ok ls -l /dev/kvm

一条最短可用路径:用 Compose 启动容器

仓库自带可直接使用的 compose.yml,克隆后在目录下启动即可,不需要手写配置:

git clone https://gitcode.com/GitHub_Trending/wi/windows cd windows && docker compose up -d

执行前请确认:该命令会下载容器镜像,容器启动后还会自动下载 Windows ISO 并执行安装,整个过程耗时取决于网络和所选版本大小。

如果你不想克隆仓库,自己写 compose 文件时,关键字段就是下面这些(完整版以仓库 compose.yml 为准):

services: windows: image: dockurr/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"]

其中./windows:/storage是系统盘存放位置,建议保留,方便容器重建后系统数据还在;VERSION: "11"表示安装 Windows 11 专业版,不写默认也是它。

可选方式:习惯纯命令行的人可以用docker run一条命令启动,参数与上面的 compose 等价;已有 K8s 集群的,仓库提供了 kubernetes.yml,其中 PVC 默认请求 64 GiB 存储。另外 WinBoat、WinPodX、WinApps 等桌面应用也是把这个容器当后端使用的。

关键选项:版本、资源、存储怎么选

只保留日常最常改的四项,其余参数默认值即可:

选项默认值什么情况下调整
VERSION11(Win11 专业版,ISO 约 7.9 GB)想省下载和磁盘空间用11l(LTSC,4.7 GB);测老软件用7u(Win7,3.1 GB);需要服务器用2022(6.0 GB)或2025(7.6 GB)
RAM_SIZE/CPU_CORES4G / 2 核安装或使用时明显卡顿再调大,如RAM_SIZE: "8G"CPU_CORES: "4"
DISK_SIZE64G要装大型软件时调大,如DISK_SIZE: "256G";也可对已有磁盘扩容,但扩容后多出的空间需在 Windows 里手动扩展分区
文件共享未启用挂载一个主机目录到容器内/shared,安装后桌面会出现Shared文件夹,同时是盘符Z:,用来在主机和 Windows 之间传文件

几个容易忽略的默认行为:

  • 默认创建的用户是Docker,密码admin,开机自动登录;想换账号用USERNAME/PASSWORD设置。
  • 默认下载英文系统,语言用LANGUAGE指定(如Chinese)。
  • 默认不向浏览器传音频,需要时设AUDIO: "Y",再在网页查看器的 Settings → Advanced 里打开 Audio。

怎么确认已经装成功

按这个顺序验证,每一步都有明确判断标准:

  1. 容器是否启动:执行docker logs windows查看日志,若出现 KVM 不可用、内存不足等报错,直接跳到下一节的排查。
  2. 安装是否在进行中:浏览器打开http://127.0.0.1:8006/,能看到 Windows 安装画面且自动推进,说明容器和下载都正常。整个安装无需人工操作。
  3. 安装是否完成:浏览器里出现 Windows 桌面,即表示安装结束、系统可用。
  4. 日常使用是否可用:用任意 RDP 客户端连接。compose 里映射了 3389 端口时,直接连127.0.0.1:3389,账号Docker、密码admin,能登录桌面即通。
  5. 共享是否生效(如有配置):桌面上出现Shared文件夹,说明文件共享挂载成功。

资料里特别提示:网页查看器响应不如 RDP 流畅,也不支持剪贴板共享,它主要用于安装阶段;日常使用建议走 RDP。

失败时按什么顺序排查

不要一次改多处,按下面顺序逐项排除:

  1. 容器起不来,或日志提示 KVM 不可用
    • 先跑kvm-ok:如果未通过,检查 BIOS/UEFI 里是否开了 Intel VT-x 或 AMD-V;宿主本身是虚拟机时,还要确认开了嵌套虚拟化。
    • 如果kvm-ok通过但容器仍报 KVM 不可用,可能是权限或设备访问问题:资料建议在 Compose 里临时加privileged: true验证一次,确认是权限问题后再去掉,改用正确的设备挂载和权限配置。
  2. 启动时内存检查失败
    • 容器默认开启宿主内存检查(RAM_CHECK默认为Y),而RAM_SIZE默认 4G。宿主可用内存不够时它不会启动;增加宿主内存或调低RAM_SIZE
  3. 卡在 ISO 下载
    • 先确认宿主网络到微软下载源的连通性;再看/storage所在分区的空闲空间是否够(ISO 大小加 64 GB 虚拟盘)。
  4. 能进系统但操作卡顿
    • 判断标准:如果只有网页里卡、RDP 里流畅,那是查看器本身的延迟,换 RDP 即可;两种都卡时再调大RAM_SIZECPU_CORES
  5. 安装完成后桌面没有 Shared 文件夹
    • 检查 compose 里是否把主机目录挂载到了/shared,路径不存在时容器侧可能自动创建空目录,但主机侧路径权限要能读写。

进阶能力与边界

以下能力资料中都有明确支持,用到时再配置:

  • 让 Windows 拥有独立 IP:创建 macvlan 网络并在 compose 中指定固定 IP,之后可以免端口映射访问所有服务;注意 macvlan 的设计决定了 Docker 宿主访问不到这个 IP。在此基础上设DHCP: "Y"并挂载/dev/vhost-net,Windows 还能像真实 PC 一样从路由器 DHCP 获取地址。
  • 安装后自动执行任务:设COMMAND跑单条命令,或把含install.bat的文件夹挂到/oem,安装最后阶段会自动执行,适合批量预装软件。
  • 自定义镜像:VERSION填 ISO 的下载 URL,或把本地 ISO 挂载为/custom.iso直接跳过下载。
  • USB 直通:用lsusb查设备 ID,通过ARGUMENTS传入。资料明确警告:安装完成前接入 USB 大容量存储设备,可能把它格式化成系统盘导致数据丢失,首次启动务必断开。
  • 域环境:设DOMAIN/DOMAIN_OU可在安装时自动加入 Active Directory,前提是 Windows 能通过域 DNS 解析并访问域控。

边界提醒:GPU 加速是实验功能;ARM64 架构的 Windows 不在本容器范围内(资料指向单独的 windows-arm 项目);本项目只含开源代码、不分发 Windows,产品密钥仅为微软公开的通用安装密钥,激活和许可合规由使用者自行负责。全部环境变量的清单见 docs/environment.md。

小结

这个项目适合"有 KVM 的 Linux 主机 + 想要临时 Windows 环境"的用户:最短路径是克隆仓库后docker compose up -d,装好与否看 8006 端口的浏览器页面是否出现桌面,日常使用走 RDP。跑通之后,可按需扩展版本选择、磁盘扩容、文件共享、独立 IP 和安装后脚本这几类配置。

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

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

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

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

立即咨询