news 2026/9/12 16:49:09

把完整 Windows 装进一个容器:用 Dockur/Windows 部署 Windows 容器实战指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
把完整 Windows 装进一个容器:用 Dockur/Windows 部署 Windows 容器实战指南

把完整 Windows 装进一个容器:用 Dockur/Windows 部署 Windows 容器实战指南

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

把完整 Windows 系统跑进 Docker 容器,过去意味着手动装系统、手动刻盘。Dockur/Windows 把它压缩成一条 compose 命令:自动下载 ISO、全自动无人值守安装、开机直接进桌面,最低要求只有 2GB 内存和 32GB 磁盘。

传统方案的痛点:装得重,没法自动化

如果你用过虚拟机软件跑 Windows,大概体会过这些痛:图形界面里点安装向导要点二十分钟,同样的流程没法复制进 CI 流水线;每开一个新环境都要单独配一台虚拟机,配置也没法共享。Dockur/Windows 把两件事都解决了:容器自动下载、自动安装、自动开机,整条流程就是 src/ 目录里的一组 bash 脚本,环境用一份 compose.yml 就能复现。需要在新机器上开一套 Windows 测试环境时,拉个镜像跑起来就行。

Windows 容器怎么做到全自动安装

原理不神秘,相当于替你跑一遍装机向导。Dockerfile 本质是一个 QEMU(开源虚拟机监视器,负责模拟 CPU、磁盘这些硬件)镜像,容器启动后 src/entry.sh 按顺序执行一批脚本,每个脚本各管一段。关键机制有四个:

  • 拉取安装源:mido.sh 按 VERSION 环境变量自动下载对应版本的 ISO,放进 /storage 缓存
  • 无人值守应答文件:assets/ 目录为每个版本预置了应答文件(XML 格式的安装选项,提前答好分区、用户名、网络这些安装问题),装到第几步、用户叫什么,全都提前定好
  • KVM 硬件加速:虚拟化直接由 CPU 指令完成,不走软件模拟,容器里的 Windows 接近原生速度
  • Samba 文件共享:装完后桌面出现 Shared 文件夹,对应挂载到 /shared 的主机目录,在 Windows 里显示为 Z: 盘

启动流程很短,src/entry.sh 的核心就是一串按顺序执行的脚本调用:

# 摘自 src/entry.sh 的启动流程 . download.sh # 按 VERSION 下载 Windows 安装源 . define.sh # 确定版本、架构、语言 . answer.sh # 生成无人值守安装应答文件 . install.sh # 启动 QEMU 虚拟机执行安装 . samba.sh # 配置 Samba 共享文件夹 . boot.sh # 引导进入 Windows 桌面

部署 Windows 容器:最小路径到桌面

第一步只是把 compose 文件跑起来。仓库根目录就有一份开箱即用的 compose.yml,核心是 KVM 设备(硬件加速)和存储挂载(磁盘落盘)两处:

services: windows: image: dockurr/windows # 官方镜像 environment: VERSION: "11l" # Windows 11 LTSC,镜像更小 devices: - /dev/kvm # KVM 硬件加速 - /dev/net/tun # 虚拟网络设备 cap_add: - NET_ADMIN # 虚拟网络权限 ports: - 8006:8006 # Web 控制台 - 3389:3389/tcp # RDP 远程端口 volumes: - ./windows:/storage # 磁盘存到宿主机

跑起来后打开浏览器访问 8006 端口,能看到整个安装过程的实时画面。默认装的是 Windows 11 Pro,桌面出现后建议切到 RDP 客户端连 3389 端口(用户名 Docker,密码 admin),比网页端跟手,还支持剪贴板。想换 Windows 版本时,只改 compose.yml 里一行:

# 只改这一行就能装不同 Windows # VERSION: "11l" → Windows 11 LTSC(4.7 GB) # VERSION: "10" → Windows 10 Pro(5.7 GB) # VERSION: "core11" → Tiny11 Core(3.0 GB) # VERSION: "xp" → Windows XP(0.6 GB) docker compose up -d # 重启容器,自动重新下载安装

把系统盘做到多小:镜像体积对比

同样是这一个容器,只改一个环境变量,落盘体积差出十几倍:

VERSION系统镜像大小
11(默认)Windows 11 Pro7.9 GB
11lWindows 11 LTSC4.7 GB
core11Tiny11 Core3.0 GB
xpWindows XP0.6 GB

默认 Windows 11 Pro 要下载 7.9GB 的安装源,改一行成 core11 就是 3.0GB,选 Windows XP 只有 0.6GB。对开发测试、老系统兼容这类场景,意味着 32GB 空闲磁盘(官方最低要求)就完全够用。

容器里跑 Windows 的几个坑

  • ⚠️KVM 不可用:容器报 KVM 不可用或启动奇慢 → 先到 BIOS 确认开了 VT-x/AMD-V,VPS 用户要确认服务商支持嵌套虚拟化,也可以用临时加 privileged: true 排除权限问题
  • ⚠️首装时插着 U 盘:安装阶段直通 USB 存储设备,它可能被格式化成系统盘,数据全丢 → 首次启动容器前拔掉 U 盘,装完再直通
  • ⚠️网页端卡顿:8006 的 Web 查看器主要服务于安装阶段,不支持剪贴板等功能 → 装完改用 RDP 连 3389 端口(用户名 Docker,密码 admin)
  • ⚠️找不到想要的配置项:除 VERSION、RAM_SIZE 外还有 DISK_SIZE、NETWORK、GPU 等几十个细粒度开关 → 完整清单见 docs/environment.md

这个项目适合需要频繁创建和销毁 Windows 环境的场景:CI 流水线、开发测试、老系统兼容。不适合追求高可用的生产业务系统,容器套虚拟化的架构下磁盘和图形开销明显。Docker Desktop 的 macOS 环境没有 KVM,官方明确不支持,这类平台别硬上。有带 KVM 的 Linux 宿主机,直接拉镜像开跑。

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

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

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

AI裹挟下的工程判断:从模型边界到落地实践的筛选方法

技术圈最近流行一个问题:我们是不是正在被 AI 裹挟着前进?英文标题是 "Are We Being Railroaded by AI?",字面意思是“我们是不是被 AI 强行推上了轨道”,但更深一层的意思是:在 AI 这股浪潮里,…

作者头像 李华
网站建设 2026/9/12 16:48:10

SPI EEPROM读回全FF?从硬件到软件一步步排查搞定

如果调试SPI EEPROM时发现读出来的数据全是0xFF,恭喜,你踩进了嵌入式开发里最经典也最让人抓狂的一个坑。最近帮朋友排查一个M95M04的故障,现象就是标题这句话:“Only receiving FF out of the M95M04”。芯片是ST的4Mbit SPI EEP…

作者头像 李华
网站建设 2026/9/5 18:42:50

OBS 插件开发实战:5 步写出实时屏幕标注滤镜

OBS 插件开发实战:5 步写出实时屏幕标注滤镜 【免费下载链接】obs-studio OBS Studio - Free and open source software for live streaming and screen recording 项目地址: https://gitcode.com/GitHub_Trending/ob/obs-studio 远程上课,你只想…

作者头像 李华
网站建设 2026/9/3 7:03:41

图像编辑模型实战:从原理到接入MAI-Image-2.6-Preview

最近在整理图像编辑模型选型时,看到 MAI-Image-2.6-Preview 登顶图像编辑榜的消息,很多同学在评论区问这个模型到底能做什么编辑、效果怎么验证、接入成本高不高。本文先不跟着榜单宣传走,而是从技术角度拆解图像编辑模型的基本原理、环境准备…

作者头像 李华
网站建设 2026/9/5 19:13:41

AI的“智慧傲慢”:流畅自信不等于可靠

这个标题翻译过来是——“AI带来的只是某种智慧的傲慢”。可能有点刺耳,但真正长期使用大模型、做过 AI 应用开发、把它放到生产线上去跑过的人,大概率会停下来想一想:我们是不是正在用“说话足够自信”,替代“理解足够可靠”&…

作者头像 李华