3分钟部署Windows容器:Docker环境下IIS服务极速上手指南
还在为Windows服务器部署繁琐而烦恼?还在担心传统虚拟机资源占用过高?本文将带你体验一种革命性的Windows部署方式——通过Docker容器运行完整Windows系统并配置IIS(Internet Information Services,互联网信息服务),让Web服务部署时间从小时级压缩到分钟级。读完本文,你将掌握容器化Windows的核心配置、IIS服务部署及性能优化技巧,轻松应对企业级Web服务需求。
项目概述:Docker容器中的Windows世界
GitHub推荐项目精选 / wi / windows是一个创新的开源项目,它实现了"Windows inside a Docker container"的核心理念。通过KVM(Kernel-based Virtual Machine,基于内核的虚拟机)加速技术,该项目能够在Docker容器中高效运行完整的Windows操作系统,包括Windows 11、Windows Server 2025等多个版本。
项目核心优势:
- 超轻量部署:无需复杂的虚拟化平台,Docker命令一键启动
- 多版本支持:从Windows 7到Windows 11,从Server 2003到Server 2025
- 资源隔离:容器化技术确保Windows环境与主机系统安全隔离
- Web化管理:内置8006端口Web控制台,随时随地访问Windows桌面
环境准备:3步完成Docker容器配置
系统兼容性检查
在开始前,请确认你的环境满足以下要求:
| 环境组合 | 兼容性 | 注意事项 |
|---|---|---|
| Docker Engine + Linux | ✅ 完全支持 | 推荐生产环境使用 |
| Docker Desktop + Windows 11 | ✅ 支持 | 需要开启WSL2和硬件虚拟化 |
| Docker Desktop + Linux/macOS/Windows 10 | ❌ 不支持 | 缺乏KVM加速支持 |
检查KVM支持的命令:
sudo apt install cpu-checker
sudo kvm-ok
核心文件结构解析
项目主要配置文件位于当前工作目录:
- compose.yml:Docker Compose配置文件,定义容器运行参数
- kubernetes.yml:Kubernetes部署配置
- src/:包含核心脚本,如src/entry.sh(入口脚本)、src/install.sh(安装脚本)
- assets/:存放各Windows版本的XML配置文件,如assets/win11x64.xml(Windows 11配置)
基础配置文件编写
创建或修改compose.yml文件,基础配置如下:
services:
windows:
image: dockurr/windows
container_name: windows
environment:
VERSION: "11" # Windows版本,支持"11"、"10"、"2025"等
RAM_SIZE: "4G" # 内存大小
CPU_CORES: "2" # CPU核心数
devices:
- /dev/kvm # 启用KVM加速
cap_add:
- NET_ADMIN # 网络管理权限
ports:
- 8006:8006 # Web控制台端口
- 3389:3389/tcp # RDP远程桌面端口
- 80:80 # IIS默认HTTP端口
- 443:443 # IIS默认HTTPS端口
stop_grace_period: 2m # 优雅停止等待时间
极速部署:Windows容器启动与初始化
启动容器
使用Docker Compose启动容器:
docker compose up -d
或使用Docker CLI直接运行:
docker run -it --rm -p 8006:8006 -p 80:80 -p 443:443 --device=/dev/kvm --cap-add NET_ADMIN --stop-timeout 120 dockurr/windows
初始化过程监控
- 打开浏览器访问
http://localhost:8006,进入Web控制台 - 系统将自动完成以下步骤:
- 下载指定版本的Windows ISO镜像(首次运行约需5-10分钟,取决于网络速度)
- 创建虚拟磁盘(默认64GB,可通过
DISK_SIZE参数调整) - 自动安装Windows操作系统
- 配置网络和远程访问服务
初始化完成后,你将在Web控制台看到Windows桌面界面,默认用户名是Docker,密码为空。
IIS服务部署:从容器到Web服务
安装IIS服务器
- 通过Web控制台或RDP登录Windows容器
- 打开"服务器管理器",选择"添加角色和功能"
- 在"服务器角色"中勾选"Web服务器(IIS)",按向导完成安装
配置第一个Web站点
- 打开"IIS管理器",右键点击"网站"→"添加网站"
- 配置网站信息:
- 网站名称:
MyFirstSite - 物理路径:
C:\inetpub\wwwroot\myfirstsite - 端口:
80(默认HTTP端口)
- 网站名称:
- 创建测试页面:在物理路径下创建
index.html文件,内容如下:
<!DOCTYPE html>
<html>
<head>
<title>Docker Windows IIS</title>
</head>
<body>
<h1>Hello from Windows Container!</h1>
<p>This IIS server is running inside a Docker container.</p>
</body>
</html>
外部访问测试
在宿主机或其他设备浏览器中访问http://容器IP地址,你将看到刚刚创建的网页。如果使用了端口映射(如上述配置中的80:80),直接访问宿主机IP即可。
高级配置:性能优化与持久化存储
系统资源调优
根据实际需求调整compose.yml中的资源配置:
environment:
RAM_SIZE: "8G" # 增加内存提升性能
CPU_CORES: "4" # 增加CPU核心数
DISK_SIZE: "128G" # 扩展磁盘容量
数据持久化方案
为确保IIS网站数据不丢失,配置数据卷挂载:
volumes:
- /path/on/host/inetpub:/inetpub # 挂载IIS网站根目录
- /path/on/host/storage:/storage # 挂载额外存储
这样,即使容器重建,网站数据也会保存在宿主机的指定目录中。
多版本Windows与IIS兼容性
不同Windows版本对IIS的支持有所差异,选择时请参考以下表格:
| Windows版本 | IIS版本 | 支持状态 | 推荐用途 |
|---|---|---|---|
| Windows 11 | IIS 10.0 | ✅ 完全支持 | 开发环境、小型网站 |
| Windows Server 2025 | IIS 10.0 | ✅ 完全支持 | 企业级生产环境 |
| Windows 10 | IIS 10.0 | ✅ 支持 | 测试环境 |
| Windows Server 2019 | IIS 10.0 | ✅ 长期支持 | 稳定生产环境 |
修改VERSION参数可切换Windows版本,如部署Windows Server 2025:
environment:
VERSION: "2025" # 对应[assets/win2025.xml](https://link.gitcode.com/i/b4af8540015fd7e86f36e3f421db942f)配置
故障排除:常见问题与解决方案
KVM加速不可用
症状:容器启动缓慢,Web控制台响应延迟
解决方法:
- 确认BIOS中已启用虚拟化技术(Intel VT-x/AMD SVM)
- 检查
/dev/kvm权限:
sudo chmod 666 /dev/kvm
- 避免使用Docker Desktop for Linux,直接使用Docker Engine
IIS服务无法外部访问
症状:容器内可访问IIS,但宿主机或外部网络无法访问
解决方法:
- 检查Windows防火墙配置,确保80/443端口开放
- 确认Docker端口映射正确:
docker port windows # 查看端口映射情况
- 检查src/samba.sh网络配置脚本是否正常运行
容器存储空间不足
症状:Windows提示磁盘空间不足
解决方法:
- 在compose.yml中增加磁盘容量:
environment:
DISK_SIZE: "256G" # 扩展到256GB
- 或添加额外磁盘:
environment:
DISK2_SIZE: "100G" # 第二块磁盘
volumes:
- /path/on/host/storage2:/storage2 # 第二块磁盘挂载点
总结与展望
通过GitHub推荐项目精选 / wi / windows项目,我们实现了在Docker容器中运行完整Windows系统并部署IIS服务的目标。这种方式不仅极大简化了部署流程,还显著降低了资源占用,为企业级Web服务提供了一种全新的轻量化解决方案。
未来展望:
- 结合Kubernetes实现Windows容器的编排与扩展(参考kubernetes.yml)
- 通过src/power.sh脚本实现容器的电源管理自动化
- 利用assets/目录中的XML配置文件自定义Windows安装流程
立即体验这种革命性的Windows部署方式,访问项目仓库获取最新代码:
git clone https://gitcode.com/GitHub_Trending/wi/windows
cd windows
docker compose up -d
让容器化Windows为你的Web服务部署带来前所未有的便捷与高效!
提示:更多高级配置和最佳实践,请参考项目README.md文档。如有问题,欢迎提交issue或参与社区讨论。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



