在 Docker 容器里跑 Windows 的做法:3 步完成 Windows Server 2022 全自动安装
【免费下载链接】windowsWindows inside a Docker container.项目地址: https://gitcode.com/GitHub_Trending/wi/windows
Dockur/Windows 是一个容器化 Windows 方案:它在 Docker 容器中运行完整的 Windows 系统,自动下载官方 ISO 并完成全部安装流程,不需要安装虚拟化产品,也不需要手动点安装向导。环境就绪的话,从拉取镜像到看到桌面,通常只需要 10 分钟左右的等待。下面以 Windows Server 2022 为例走一遍部署步骤。
一句话说清它能干什么
容器内运行 Windows:基于 KVM 加速,性能接近原生,宿主机不装任何虚拟化软件全自动安装:ISO 自动下载、分区、安装一次完成,全程无需人工干预多版本覆盖:从 Windows Server 2025 到 Windows XP 共 20 多个版本,一个环境变量切换浏览器访问桌面:安装进度和桌面都在 8006 端口的网页里查看,日常使用可切换 RDP 连接资源可定制:CPU 核数、内存、磁盘大小均可配置,支持按需动态回收内存
动手前:环境检查
- Linux 宿主机,已安装 Docker 或 Podman
/dev/kvm存在,即 CPU 虚拟化扩展(Intel VT-x / AMD-V)已在 BIOS 开启- 至少 2 GB 可用内存(默认给 Windows 分配 4 GB)
- 至少 32 GB 空闲磁盘(2022 的 ISO 约 6 GB,默认系统盘 64 GB)
- 注意:Linux/macOS 上的 Docker Desktop 不提供 KVM 访问,不在支持范围 🔧
部署
第一步:确认 KVM 可用
KVM 是整个方案的性能基础,缺失时安装会极慢。
sudo kvm-ok ls -l /dev/kvm预期输出KVM acceleration can be used且设备文件存在。不存在时先回 BIOS 检查虚拟化选项,虚拟机宿主还需开启嵌套虚拟化。
第二步:编写 compose 配置
将以下内容保存为compose.yml(仓库中的 compose.yml 是完整示例):
services: windows: image: dockurr/windows environment: VERSION: "2022" devices: - /dev/kvm - /dev/net/tun ports: - 8006:8006使用 macvlan 或 user-mode 网络时追加cap_add: - NET_ADMIN;建议同时挂载卷./windows:/storage,系统盘会写入该目录。
第三步:启动容器并观察自动安装
docker compose up -d然后浏览器打开 http://127.0.0.1:8006/ ,页面实时显示下载与安装进度。安装完成后页面直接呈现 Windows 桌面,总时长取决于下载速度,通常需要 10–30 分钟。
进阶配置
完整变量清单见 docs/environment.md,常用的是改一处 environment:
environment: VERSION: "2019" RAM_SIZE: "8G" CPU_CORES: "4" DISK_SIZE: "256G"VERSION常用取值(大小为下载体积):
| 值 | 系统 | 大小 |
|---|---|---|
2025 | Windows Server 2025 | 7.6 GB |
2022 | Windows Server 2022 | 6.0 GB |
2019 | Windows Server 2019 | 5.3 GB |
11 | Windows 11 Pro | 7.9 GB |
10 | Windows 10 Pro | 5.7 GB |
其他单变量说明:
USERNAME/PASSWORD:设定 Windows 账号,默认Docker/adminLANGUAGE:选择系统语言,默认英文AUDIO: "Y":开启浏览器音频串流- 挂载
./folder:/shared:宿主机文件夹在桌面上显示为Shared,即Z:盘 DISK2_SIZE配合/storage2:增加第二块磁盘
常见问题
Q:网页访问桌面为什么比较卡?官方定位网页查看器主要用于安装阶段。日常使用建议用任意 RDP 客户端连接:映射了 3389 端口的环境连127.0.0.1:3389,macvlan 模式下直接连容器 IP,账号Docker、密码admin。体验更流畅,还支持剪贴板等功能。
Q:系统盘存在哪里,能否换位置?系统盘位于容器的/storage,对应挂载卷(如./windows)下的文件。把挂载路径换成容量更大的目录即可,磁盘随目录迁移。
Q:能装列表外的 ISO 吗?可以。把VERSION指向 ISO 的下载 URL,或将本地 ISO 绑定到/custom.iso,后者会跳过下载直接使用。
Q:容器提示 KVM 不可用怎么办?先确认 BIOS 虚拟化与宿主机的嵌套虚拟化支持。若kvm-ok通过但容器仍不可用,可临时在 compose 中加privileged: true排除设备权限问题。
它不适合什么场景
- GPU 密集型负载:硬件虚拟化不支持显卡直通,游戏、图形渲染类工作不要指望它
- 浏览器里的长时间重度操作:网页查看器的响应和功能弱于 RDP,长会话办公应走 RDP
- 无 KVM 的宿主:Linux/macOS 的 Docker Desktop、Windows 10 均不支持,Windows 11 宿主需开启嵌套虚拟化
- 授权责任自负:项目本身开源且不随附 Windows,需自行确保拥有有效许可
这个方案的核心是把下载、分区、安装都交给容器完成,宿主只负责提供 KVM 和存储。如果环境检查全部通过,整个部署就是一次docker compose up -d,剩下的是在浏览器里等下载完成。
【免费下载链接】windowsWindows inside a Docker container.项目地址: https://gitcode.com/GitHub_Trending/wi/windows
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考