dockur ,Docker容器内的Windows系统

dockur,一个开源项目,专注于为 Docker 用户提供一键式虚拟化解决方案。其核心项目包括通过docker-compose 在容器中运行完整 Windows 系统,支持自动下载 ISO、KVM 加速、Web 查看器,支持 ARM64 架构的 Windows 容器版本。如果部署多个,可以将ports中主机部分的端口改为其他端口。

services:
  windows:
    image: dockurr/windows
    container_name: windows
    environment:
      VERSION: "ltsc10"
      LANGUAGE: "Chinese"
      CPU_CORES: "2"
      USERNAME: "admin"
      PASSWORD: "yourpassword"
      DISK_SIZE: "128G"
      REGION: "en-US"
      KEYBOARD: "en-US"
    devices:
      - /dev/kvm
      - /dev/net/tun
    cap_add:
      - NET_ADMIN
    ports:
      - 8006:8006
      - 3389:3389/tcp
      - 3389:3389/udp
    volumes:
      - ./windows:/storage
#       - /vol3/1000/999.Temp:/shared
#       - /vol3/1000/999.Temp/tiny10.iso:/custom.iso
    restart: always
    stop_grace_period: 2m

如何使用?

非常简单!按以下步骤操作:

  • 启动容器,使用浏览器访问 端口 8006。
  • 坐等安装完成,整个安装过程将全自动进行。
  • 当看到桌面时,Windows 安装即已完成,可以正常使用。

享受你的全新机器,别忘了给这个项目点赞!

如何选择 Windows 版本?

默认将安装 Windows 11。但你可以向 compose 文件中添加 VERSION 环境变量,以指定要下载的其他 Windows 版本:

environment:
  VERSION: "win11"

从以下值中选择:

值版本大小
win11Windows 11 Pro6.4 GB
win11eWindows 11 Enterprise5.8 GB
win10Windows 10 Pro5.8 GB
ltsc10Windows 10 LTSC4.6 GB
win10eWindows 10 Enterprise5.2 GB
win8Windows 8.1 Pro4.2 GB
win8eWindows 8.1 Enterprise3.8 GB
win7Windows 7 Enterprise3.0 GB
vistaWindows Vista Enterprise3.0 GB
winxpWindows XP Professional0.6 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
core11Tiny 11 Core2.1 GB
tiny11Tiny 113.8 GB
tiny10Tiny 103.6 GB

如需安装 ARM64 版本的 Windows,请使用 dockur/windows-arm。

如何选择 Windows 语言?

默认将下载英文版本的 Windows。但你可以向 compose 文件中添加 LANGUAGE 环境变量,以指定其他语言:

environment:
  LANGUAGE: "Chinese"

可选择: 🇦🇪 阿拉伯语 Arabic, 🇧🇬 保加利亚语 Bulgarian, 🇨🇳 中文 Chinese, 🇭🇷 克罗地亚语 Croatian, 🇨🇿 捷克语 Czech, 🇩🇰 丹麦语 Danish, 🇳🇱 荷兰语 Dutch, 🇬🇧 英语 English, 🇪🇪 爱沙尼亚语 Estonian, 🇫🇮 芬兰语 Finnish, 🇫🇷 法语 French, 🇩🇪 德语 German, 🇬🇷 希腊语 Greek, 🇮🇱 希伯来语 Hebrew, 🇭🇺 匈牙利语 Hungarian, 🇮🇹 意大利语 Italian, 🇯🇵 日语 Japanese, 🇰🇷 韩语 Korean, 🇱🇻 拉脱维亚语 Latvian, 🇱🇹 立陶宛语 Lithuanian, 🇳🇴 挪威语 Norwegian, 🇵🇱 波兰语 Polish, 🇵🇹 葡萄牙语 Portuguese, 🇷🇴 罗马尼亚语 Romanian, 🇷🇺 俄语 Russian, 🇷🇸 塞尔维亚语 Serbian, 🇸🇰 斯洛伐克语 Slovak, 🇸🇮 斯洛文尼亚语 Slovenian, 🇪🇸 西班牙语 Spanish, 🇸🇪 瑞典语 Swedish, 🇹🇭 泰语 Thai, 🇹🇷 土耳其语 Turkish, 🇺🇦 乌克兰语 Ukrainian。

如果你想使用与所选语言默认值不同的键盘布局或区域设置,可以添加 KEYBOARD 和 REGION 变量,使用文化代码:

environment:
  REGION: "zh-CN"
  KEYBOARD: "zh-CN"

如何更改存储位置?

要更改存储位置,在 compose 文件中添加以下绑定挂载:

volumes:
  - /var/win:/storage

将示例路径 /var/win 替换为你想要的存储文件夹。

如何更改磁盘大小?

要扩展默认的 64 GB 大小,向 compose 文件中添加 DISK_SIZE 设置:

environment:
  DISK_SIZE: "256G"

这也可以用于将现有磁盘扩容到更大的容量,且不会丢失数据。

如何与宿主机共享文件?

打开”文件资源管理器”并点击”网络”部分,你会看到一个名为 host.lan 的计算机。双击它,会显示一个名为 Data 的文件夹,可以通过 compose 文件将其绑定到宿主机的任意文件夹:

volumes:
  -  /home/user/example:/shared

示例文件夹 /home/user/example 将作为 \\host.lan\Data 可用。你可以选择在 Windows 中将该路径映射为盘符,方便访问。

如何安装自定义镜像?

若要下载上方列表中不支持的 ISO 镜像,请将 ISO 的 URL 指定在 VERSION 环境变量中:

environment:
  VERSION: "https://example.com/win.iso"

或者,你也可以跳过下载直接使用本地文件,通过以下方式在 compose 文件中绑定:

volumes:
  - /home/user/example.iso:/custom.iso

将示例路径 /home/user/example.iso 替换为你想要的 ISO 文件名,此时 VERSION 的值将被忽略。

如何自定义安装?

如果你想修改自动安装过程中使用的设置,可以通过编辑对应 Windows 版本的应答文件来实现,例如 Windows 11 Pro 的 win11x64.xml。

修改后,在 compose 文件中添加以下行:

volumes:
  -  /home/user/example.xml:/custom.xml

如何在安装后运行脚本?

若要在安装后运行你自己的脚本,可以创建一个名为 install.bat 的文件,并将其与所需的其他文件(例如要安装的程序)放在同一个文件夹中。然后在 compose 文件中绑定:

volumes:
  -  /home/user/example:/oem

示例文件夹 /home/user/example 将在安装过程中被复制到 C:\OEM,其中的 install.bat 将在最后一步执行。

如何手动安装?

推荐使用自动安装,因为它可以避免在虚拟化环境中运行 Windows 时的常见问题,并优化各项设置以获得最佳性能。

但如果你坚持手动安装,请在 compose 文件中添加以下环境变量:

environment:
  MANUAL: "Y"

然后按以下步骤操作:

  1. 启动容器,在浏览器中连接到容器的 端口 8006。下载完成后,你将看到 Windows 安装界面。
  2. 点击”现在安装”开始安装。在下一个屏幕上,当提示”加载驱动程序”时,点击”确定”。
  3. 从列表中选择与你的 Windows 版本匹配的 VirtIO SCSI 驱动程序。对于 Windows 11,选择 D:\amd64\w11\vioscsi.inf,然后点击”下一步”。
  4. 接受许可协议,选择你偏好的 Windows 版本,如家庭版或专业版。
  5. 选择”自定义:仅安装 Windows(高级)”,然后在下一个屏幕上点击”加载驱动程序”。
  6. 选择”浏览”,导航到 D:\NetKVM\w11\amd64 文件夹,然后点击”确定”。
  7. 从列表中选择 VirtIO Ethernet Adapter,然后点击”下一步”。
  8. 选择 Drive 0,然后点击”下一步”。
  9. 等待 Windows 完成文件复制并结束安装。
  10. 看到桌面后,打开文件资源管理器,导航到 CD-ROM 驱动器(E:\)。
  11. 双击 virtio-win-gt-x64.msi,然后按提示安装 VirtIO 驱动程序。