如何在Docker中运行Windows系统:完整教程与最佳实践
6 min read
引言
你是否曾经想过在Docker容器中运行完整的Windows系统?这听起来似乎不太可能,但现在通过dockur/windows这个革命性的解决方案,这个愿望已经成为现实。无论是Windows 11、10还是经典的Windows 7,都可以在Docker中流畅运行。
本文将为您详细介绍如何实现这个看似不可能的任务,让您的Docker容器秒变Windows工作站。
💡 如果你对在Docker中运行Windows感兴趣,这篇教程将带你一步步实现这个目标。
为什么选择Docker运行Windows?
在深入技术细节之前,让我们先了解为什么要在Docker中运行Windows:
- 🚀 快速部署和迁移
- 💾 资源占用更少
- 🔄 支持多版本共存
- 🛠️ 方便的环境管理
- 🔒 更好的隔离性
dockur/windows 特性概览
dockur/windows 提供了以下核心功能:
- ✨ 支持多个Windows版本(Windows 11/10/8.1/7/XP等)
- 🔄 自动ISO下载功能
- ⚡ KVM加速支持
- 🌐 基于Web的远程访问
- 🖥️ RDP远程桌面支持
- 💽 灵活的存储配置
- ⚙️ 可自定义CPU和内存分配
- 💪 支持
arm
版本 arm戳这里
环境要求
在开始之前,请确保您的系统满足以下要求:
💡 如果你想在virtualBox 中的虚拟机中体验,请先 开启虚拟化支持。
要求项 | 最低配置 | 推荐配置 |
---|---|---|
系统 | Linux (支持KVM) | Ubuntu 22.04+ |
CPU | 支持虚拟化 | 4核心+ |
内存 | 4GB | 8GB+ |
存储 | 20GB可用空间 | SSD存储 |
基础安装配置
1. 使用Docker Compose部署
创建compose.yml
文件:
services:
windows:
image: dockurr/windows
container_name: windows
environment:
VERSION: "11" # 选择Windows版本
devices:
- /dev/kvm # KVM设备映射
cap_add:
- NET_ADMIN
ports:
- 8006:8006 # Web访问端口
- 3389:3389/tcp # RDP端口
- 3389:3389/udp
volumes:
- /home/vir-docker/data:/storage # Windows 镜像将创建在您的本地驱动器上,而不是在容器内。下次运行它时,它将检测到安装并启动它
stop_grace_period: 2m #"优雅退出"的时间窗口
💡 优雅关机
2. 启动容器
docker-compose up -d
系统配置指南
Windows版本选择
通过设置VERSION
环境变量,您可以选择不同的Windows版本:
版本代号 | 系统版本 | 镜像大小 |
---|---|---|
11 | Windows 11 Pro | 5.4 GB |
11l | Windows 11 LTSC | 4.2 GB |
11e | Windows 11 Enterprise | 5.8 GB |
10 | Windows 10 Pro | 5.7 GB |
10l | Windows 10 LTSC | 4.6 GB |
10e | Windows 10 Enterprise | 5.2 GB |
8 | Windows 8.1 Pro | 4.0 GB |
8e | Windows 8.1 Enterprise | 3.7 GB |
7e | Windows 7 Enterprise | 3.0 GB |
ve | Windows Vista Enterprise | 3.0 GB |
xp | Windows XP Professional | 0.6 GB |
2025 | Windows Server 2025 | 5.0 GB |
2022 | Windows Server 2022 | 4.7 GB |
2019 | Windows Server 2019 | 5.3 GB |
2016 | Windows Server 2016 | 6.5 GB |
2012 | Windows Server 2012 | 4.3 GB |
2008 | Windows Server 2008 | 3.0 GB |
2003 | Windows Server 2003 | 0.6 GB |
存储配置
修改默认存储位置:
volumes:
- /var/win:/storage # 自定义存储路径
调整磁盘大小:
environment:
DISK_SIZE: "256G" # 设置主磁盘容量
DISK2_SIZE: "32G" # 设置第二块磁盘容量
DISK3_SIZE: "64G" # 设置第三块磁盘容量
volumes:
- /var/win:/storage # 主磁盘存储路径
- /home/win:/storage2 # 第二块磁盘存储路径
- /mnt/win:/storage3 # 第三块磁盘存储路径
系统资源分配
配置CPU和内存:
environment:
RAM_SIZE: "8G" # 分配8GB内存
CPU_CORES: "4" # 分配4个CPU核心
自定义Windows语言
默认情况下,系统会安装英文版Windows。如果需要其他语言版本,可以通过设置LANGUAGE
环境变量来指定:
environment:
LANGUAGE: "Chinese" # 设置为中文版Windows
支持的语言选项包括:
语言 | 设置值 | 语言 | 设置值 |
---|---|---|---|
中文 | Chinese | 英语 | English |
日语 | Japanese | 韩语 | Korean |
法语 | French | 德语 | German |
西班牙语 | Spanish | 俄语 | Russian |
意大利语 | Italian | 葡萄牙语 | Portuguese |
💡 提示:建议选择官方支持的语言版本,以确保系统稳定性和兼容性。
远程访问配置
Web访问
- 启动容器后访问
http://your-host-ip:8006
- 等待系统自动安装完成
- 看到Windows桌面即表示安装成功
RDP远程桌面
- 使用任意RDP客户端连接
your-host-ip:3389
- 默认用户名:
Docker
- 默认密码为空
自定义账号密码
environment:
USERNAME: "suke"
PASSWORD: "suke@pwd"
高级配置
自定义安装脚本
创建install.bat
并挂载到容器:
volumes:
- /path/to/scripts:/oem
DHCP网络配置
启用DHCP获取IP:
environment:
DHCP: "Y"
devices:
- /dev/vhost-net
device_cgroup_rules:
- 'c *:* rwm'
常见问题解决
KVM支持检查
检查系统KVM支持:
sudo apt install cpu-checker
sudo kvm-ok
性能优化建议
- 确保启用CPU虚拟化扩展
- 使用SSD存储
- 分配足够的系统资源
- 考虑使用macvlan网络以获得更好的网络性能
总结
dockur/windows为在Docker中运行Windows系统提供了一个强大而灵活的解决方案。通过本文的配置指南,您可以轻松部署和管理Docker容器中的Windows系统,为开发测试、虚拟化部署等场景提供更多可能性。