Tech Explorer Logo

搜索内容

如何在Docker中运行Windows系统:完整教程与最佳实践

6 min read
Cover image for 如何在Docker中运行Windows系统:完整教程与最佳实践

引言

你是否曾经想过在Docker容器中运行完整的Windows系统?这听起来似乎不太可能,但现在通过dockur/windows这个革命性的解决方案,这个愿望已经成为现实。无论是Windows 11、10还是经典的Windows 7,都可以在Docker中流畅运行。

本文将为您详细介绍如何实现这个看似不可能的任务,让您的Docker容器秒变Windows工作站。

RDP远程桌面

💡 如果你对在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核心+
内存4GB8GB+
存储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版本:

版本代号系统版本镜像大小
11Windows 11 Pro5.4 GB
11lWindows 11 LTSC4.2 GB
11eWindows 11 Enterprise5.8 GB
10Windows 10 Pro5.7 GB
10lWindows 10 LTSC4.6 GB
10eWindows 10 Enterprise5.2 GB
8Windows 8.1 Pro4.0 GB
8eWindows 8.1 Enterprise3.7 GB
7eWindows 7 Enterprise3.0 GB
veWindows Vista Enterprise3.0 GB
xpWindows XP Professional0.6 GB
2025Windows Server 20255.0 GB
2022Windows Server 20224.7 GB
2019Windows Server 20195.3 GB
2016Windows Server 20166.5 GB
2012Windows Server 20124.3 GB
2008Windows Server 20083.0 GB
2003Windows Server 20030.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访问

  1. 启动容器后访问http://your-host-ip:8006
    Web访问
  2. 等待系统自动安装完成
  3. 看到Windows桌面即表示安装成功

RDP远程桌面

  1. 使用任意RDP客户端连接your-host-ip:3389
  2. 默认用户名: Docker
  3. 默认密码为空

自定义账号密码

   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

性能优化建议

  1. 确保启用CPU虚拟化扩展
  2. 使用SSD存储
  3. 分配足够的系统资源
  4. 考虑使用macvlan网络以获得更好的网络性能

总结

dockur/windows为在Docker中运行Windows系统提供了一个强大而灵活的解决方案。通过本文的配置指南,您可以轻松部署和管理Docker容器中的Windows系统,为开发测试、虚拟化部署等场景提供更多可能性。

参考资源

Share