news 2026/9/11 13:55:13

5 步快速在 Docker 容器中运行 Windows:从环境自检到 RDP 上线

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
5 步快速在 Docker 容器中运行 Windows:从环境自检到 RDP 上线

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。常用取值:

系统版本镜像大小
11Windows 11 Pro7.9 GB
11lWindows 11 LTSC4.7 GB
10Windows 10 Pro5.7 GB
10lWindows 10 LTSC4.6 GB
7uWindows 7 Ultimate3.1 GB
xpWindows XP Professional0.6 GB
2025Windows Server 20257.6 GB
2022Windows Server 20226.0 GB
tiny11Tiny115.3 GB
reactosReactOS0.1 GB

此外还提供 Windows 8.1、Vista、95/98/ME、2000 至 2003 等完整清单;把VERSION指向一个 ISO 的 URL 即可安装自定义镜像。

资源与网络相关的关键默认值:

参数默认值说明
CPU_CORES2虚拟 CPU 核心数,可设halfmax
RAM_SIZE4G分配给 Windows 的内存,可设halfmax
DISK_SIZE64G主磁盘容量
WEB_PORT8006Web 查看器端口
NETWORK自动网络模式:natuser
USERNAME/PASSWORDDocker/adminWindows 账号凭据
AUDION是否向 Web 查看器流送音频

完整变量清单(磁盘缓存、内存气球、启动模式等)见 docs/environment.md。仓库的assets/目录还存放着每个版本对应的自动安装脚本,这就是"无人值守"的实现来源。

高频调优配置:资源、磁盘与自定义安装

🔧 实际使用中改动最多的三项配置如下。

1. CPU 与内存:默认 2 核 4 GB,轻量使用足够,重负载按需上调:

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

两个变量都接受halfmax,含义为主机资源的一半或全部。

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:盘。LANGUAGEKEYBOARDDISPLAY(切 VNC)、BALLOONING(动态回收内存)等其余选项可查 docs/environment.md。

三类典型使用场景

兼容性测试——同一套软件要在多代 Windows 上验证时,只需换版本号:

  • 拉起7uxp等老系统验证遗留软件,测完即弃
  • 用 LTSC 或 Server 版本核对服务场景下的行为差异
  • 配合COMMANDinstall.bat脚本化初始化,快速批量构建同构测试机

企业域环境——容器在安装阶段就能加域,适合做域控和桌面标准化实验:

  • DOMAIN指定域名,DOMAIN_OU指定计算机账户所在的 OU
  • 默认Docker账户会被加入本地 Administrators 组,安装后自动登录
  • 非域场景可用WORKGROUP指定工作组

教学演示——无人值守安装本身就是个现成演示素材:

  • 新环境几十分钟内可用,省去手工安装环节
  • 用 RDP 或 Web 查看器给学生演示系统操作
  • 课件通过Shared文件夹直接在宿主机与容器间传递

故障排查:四个高频问题的定位与解决

现象:容器报 KVM 不可用,运行极慢可能原因:硬件虚拟化未开启,或宿主机本身是虚拟机且未开嵌套虚拟化。 步骤:1) 运行sudo kvm-ok确认状态;2) 进 BIOS/UEFI 检查Intel VT-xAMD-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,通过ARGUMENTSusb-host方式直通。

那台做兼容性测试的 Windows,现在只需一个 compose 文件:不装虚拟机、不手工安装,一个容器就是一台测试机。Dockur/Windows 把"装好一套完整 Windows"压缩成一次docker compose up,版本、资源、网络都是环境变量可控。下次需要一次性的 Windows 环境时,容器随时可以拉起。

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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/11 13:51:17

十分钟把语音识别搬上显卡:whisper.cpp CUDA 加速教程

十分钟把语音识别搬上显卡:whisper.cpp CUDA 加速教程 【免费下载链接】whisper.cpp Port of OpenAIs Whisper model in C/C 项目地址: https://gitcode.com/GitHub_Trending/wh/whisper.cpp 昨晚试着转录一段两小时的播客,纯 CPU 跑 whisper-cli…

作者头像 李华
网站建设 2026/9/11 13:54:22

PowerShell 实战教程:从第一条命令到日常自动化的完整指南

PowerShell 实战教程:从第一条命令到日常自动化的完整指南 【免费下载链接】PowerShell PowerShell for every system! 项目地址: https://gitcode.com/GitHub_Trending/po/PowerShell 如果你想在 Windows、Linux 和 macOS 上用同一套脚本环境搞定日常自动化…

作者头像 李华
网站建设 2026/9/11 13:55:09

Memos 标签管理实战指南:多级标签 5 分钟上手,别再乱建了

Memos 标签管理实战指南:多级标签 5 分钟上手,别再乱建了 【免费下载链接】memos Open-source, self-hosted note-taking tool built for quick capture. Markdown-native, lightweight, and fully yours. 项目地址: https://gitcode.com/GitHub_Trend…

作者头像 李华
网站建设 2026/9/3 17:23:31

水母堵塞核电站取水口引发的系统韧性思考

一条关于核电站的新闻,往往会让读者第一时间联想到复杂的安全系统、严格的操作规程和厚重的混凝土屏障。但如果告诉你,让三台核反应堆同时停下来的,是一群水母,你是不是会产生一种“工业世界的顶级防线,竟然被生物世界…

作者头像 李华