Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
windows — 在Docker容器中运行Windows,支持KVM加速、自动安装和可自定义资源。支持多个Windows版本、USB直通和macvlan网络。 | Kitploit
工具/GitHubGitHub/dockur/windows
通用工具容器安全安全虚拟化云安全
GitHubdockur/windows

windows

在Docker容器中运行Windows,支持KVM加速、自动安装和可自定义资源。支持多个Windows版本、USB直通和macvlan网络。

查看仓库
52.8k4.6k6216天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
<h1 align="center">Windows<br />
<div align="center">
<a href="https://github.com/dockur/windows"><img src="https://raw.githubusercontent.com/dockur/windows/master/.github/logo.png" title="徽标" style="max-width:100%;" width="96" /></a>
</div>
<div align="center">

[![Build]][build_url]
[![Version]][tag_url]
[![Size]][tag_url]
[![Package]][pkg_url]
[![Pulls]][hub_url]

</div></h1>

Docker 容器中的 Windows。

## 功能 ✨

- 在 Docker 容器内运行 Windows
- 自动下载并无人值守安装
- 支持现代和旧版 Windows 版本
- 借助 KVM 加速实现接近原生的性能
- 可自定义 CPU、内存和存储分配
- 通过内存气球(ballooning)实现动态内存分配
- USB 透传和宿主机文件夹共享
- 支持 NAT、用户模式、macvlan 和 macvtap 网络

## 视频 📺

[![YouTube](https://assets.kitploit.com/production/public/readmes/8002/385d83d323911ea44b233b3d962a8c34a2909ab01a2ba3a525946ce7025a1df3.jpg)](https://www.youtube.com/watch?v=xhGYobuG508)

## 使用方法 🐳

##### Docker Compose:

```yaml
services:
  windows:
    image: dockurr/windows
    container_name: windows
    environment:
      VERSION: "11"
    devices:
      - /dev/kvm
      - /dev/net/tun
    cap_add:
      - NET_ADMIN
    ports:
      - 8006:8006
      - 3389:3389/tcp
      - 3389:3389/udp
    volumes:
      - ./windows:/storage
    restart: always
    stop_grace_period: 2m
```

##### Docker CLI:

```bash
docker run -it --rm --name windows -e "VERSION=11" -p 8006:8006 --device=/dev/kvm --device=/dev/net/tun --cap-add NET_ADMIN -v "${PWD:-.}/windows:/storage" --stop-timeout 120 docker.io/dockurr/windows
```

##### Kubernetes:

```shell
kubectl apply -f https://raw.githubusercontent.com/dockur/windows/refs/heads/master/kubernetes.yml
```

##### GitHub Codespaces:

[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/dockur/windows)

##### 图形安装程序:

[![下载 WinBoat](https://raw.githubusercontent.com/dockur/windows/master/.github/winboat.png)](https://winboat.app)

## 要求 ⚙️

- 在支持 KVM 的 Linux 宿主机上使用 Docker 或 Podman。
- 在 Windows 11 上使用启用了嵌套虚拟化的 Docker Desktop 或 Podman(桌面版)。
- 至少 4 GB 可用内存。
- 至少 64 GB 可用磁盘空间。

> [!NOTE]
> 当前,Linux、macOS 和 Windows 10 上的 Docker Desktop 无法为容器提供 KVM 访问权限,因此不受支持。

## 常见问题 💬

### 如何使用?

  非常简单!步骤如下:
  
  - 启动容器,并使用 Web 浏览器连接到 [8006 端口](http://127.0.0.1:8006/)。

  - 安坐并静候佳音,整个安装过程将完全自动执行。

  - 一旦看到桌面,您的 Windows 安装即可使用。
  
  享受您全新的机器,别忘了为本仓库加星!

### 如何选择 Windows 版本?

  默认情况下,将安装 Windows 11 专业版。但您可以在 compose 文件中添加 `VERSION` 环境变量,以指定要下载的其他 Windows 版本:

  ```yaml
  environment:
    VERSION: "10"
  ```

  从以下值中选择:
  
  | **值**             | **版本**                 | **大小** |
  |---|---|---|
  | `11`   | Windows 11 Pro            | 7.9 GB   |
  | `11l`  | Windows 11 LTSC           | 4.7 GB   |
  | `11e`  | Windows 11 Enterprise     | 6.6 GB   |
  ||||
  | `10`   | Windows 10 Pro            | 5.7 GB   |
  | `10l`  | Windows 10 LTSC           | 4.6 GB   |
  | `10e`  | Windows 10 Enterprise     | 5.2 GB   |
  ||||
  | `8e`   | Windows 8.1 Enterprise    | 3.7 GB   |
  | `7u`   | Windows 7 Ultimate        | 3.1 GB   |
  | `vu`   | Windows Vista Ultimate    | 3.0 GB   |
  | `xp`   | Windows XP Professional   | 0.6 GB   |
  | `2k`   | Windows 2000 Professional | 0.4 GB   | 
  ||||  
  | `2025` | Windows Server 2025       | 7.6 GB   |
  | `2022` | Windows Server 2022       | 6.0 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   |

> [!TIP]
> 如需安装 ARM64 版本的 Windows,请使用 [dockur/windows-arm](https://github.com/dockur/windows-arm/)。

### 如何更改存储位置?

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

  ```yaml
  volumes:
    - ./windows:/storage
  ```

  将示例路径 `./windows` 替换为您想要的存储文件夹或命名卷。

### 如何更改磁盘大小?

  要将默认的 64 GB 空间扩大,请在 compose 文件中添加 `DISK_SIZE` 设置,并设置为您希望的容量:

  ```yaml
  environment:
    DISK_SIZE: "256G"
  ```
  
> [!TIP]
> 这也可以用来将现有磁盘扩容,而不会丢失任何数据。不过,之后您需要[手动扩展磁盘分区](https://learn.microsoft.com/en-us/windows-server/storage/disk-management/extend-a-basic-volume?tabs=disk-management),因为新增的磁盘空间会显示为未分配。

### 如何与宿主机共享文件?

  安装完成后,桌面上会有一个名为 `Shared` 的文件夹,可用于与宿主机交换文件。
  
  要为这一用途选择宿主机上的文件夹,请在 compose 文件中添加以下绑定挂载:

  ```yaml
  volumes:
    -  ./example:/shared
  ```

  将示例路径 `./example` 替换为您希望共享的文件夹,之后它将显示为 `Shared`。

### 如何更改 CPU 或内存的大小?

  默认情况下,Windows 可使用 2 个 CPU 核心和 4 GB 内存。

  如果您想调整这些数值,可以使用以下环境变量指定所需数量:

  ```yaml
  environment:
    RAM_SIZE: "8G"
    CPU_CORES: "4"
  ```

### 如何配置用户名和密码?

  默认会创建一个名为 `Docker` 的用户,密码为 `admin`。

  如果您想在安装期间设置不同的凭据,可以在 compose 文件中配置:

  ```yaml
  environment:
    USERNAME: "bill"
    PASSWORD: "gates"
  ```

### 如何选择 Windows 语言?

  默认情况下,会下载英文版 Windows。
  
  但您可以在 compose 文件中添加 `LANGUAGE` 环境变量,以指定要下载的其他语言:

  ```yaml
  environment:
    LANGUAGE: "French"
  ```
  
  您可以在以下语言之间选择:🇦🇪 阿拉伯语、🇧🇬 保加利亚语、🇨🇳 中文、🇭🇷 克罗地亚语、🇨🇿 捷克语、🇩🇰 丹麦语、🇳🇱 荷兰语、🇬🇧 英语、🇪🇪 爱沙尼亚语、🇫🇮 芬兰语、🇫🇷 法语、🇩🇪 德语、🇬🇷 希腊语、🇮🇱 希伯来语、🇭🇺 匈牙利语、🇮🇹 意大利语、🇯🇵 日语、🇰🇷 韩语、🇱🇻 拉脱维亚语、🇱🇹 立陶宛语、🇳🇴 挪威语、🇵🇱 波兰语、🇵🇹 葡萄牙语、🇷🇴 罗马尼亚语、🇷🇺 俄语、🇷🇸 塞尔维亚语、🇸🇰 斯洛伐克语、🇸🇮 斯洛文尼亚语、🇪🇸 西班牙语、🇸🇪 瑞典语、🇹🇭 泰语、🇹🇷 土耳其语和 🇺🇦 乌克兰语。

### 如何选择键盘布局?

  如果您想设置所选语言的非默认键盘布局或区域设置,可以像这样添加 `KEYBOARD` 和 `REGION` 变量:

  ```yaml
  environment:
    REGION: "en-US"
    KEYBOARD: "en-US"
  ```

### 如何安装自定义镜像?

  若要下载不受支持的 ISO 镜像,请在 `VERSION` 环境变量中指定其 URL:
  
  ```yaml
  environment:
    VERSION: "https://example.com/win.iso"
  ```

  另外,您也可以跳过下载,改用本地文件,方法是在 compose 文件中以这种方式绑定它:
  
  ```yaml
  volumes:
    - ./example.iso:/custom.iso
  ```

  将示例路径 `./example.iso` 替换为您想要的 ISO 文件的文件名。在这种情况下,`VERSION` 的值会被忽略。

### 如何在安装后运行脚本?

  要在安装后运行您自己的脚本,您可以创建一个名为 `install.bat` 的文件,并将其与所需的其他文件(例如要安装的软件)一起放在一个文件夹中。
  
  然后在 compose 文件中这样绑定该文件夹:

  ```yaml
  volumes:
    -  ./example:/oem
  ```

  示例文件夹 `./example` 会被复制到 `C:\OEM`,该文件夹中的 `install.bat` 文件将在自动安装的最后一步执行。

### 如何执行手动安装?

  建议采用自动安装的方式,因为它会调整各种设置,以避免在虚拟环境中运行 Windows 时出现的常见问题。

  不过,如果您坚持手动安装(风险自负),请在 compose 文件中添加以下环境变量:

  ```yaml
  environment:
    MANUAL: "Y"
  ```

### 如何使用 RDP 进行连接?

  Web 查看器主要供安装期间使用,因为它的响应速度不如 RDP,而且不支持剪贴板共享等功能。

  因此,为了获得更好的体验,您可以使用任意 Microsoft 远程桌面客户端,使用用户名 `Docker` 和密码 `admin` 连接到容器的 IP 地址。

  在 Play Store 中有适用于 [Android](https://play.google.com/store/apps/details?id=com.microsoft.rdc.androidx) 的 RDP 客户端,在 Apple Store 中有适用于 [iOS](https://apps.apple.com/nl/app/microsoft-remote-desktop/id714464092?l=en-GB) 的客户端。在 Linux 上可以使用 [FreeRDP](https://www.freerdp.com/),在 Windows 上只需在搜索框中输入 `mstsc`。

### 如何启用音频?

  默认情况下,除非使用 RDP,否则音频处于禁用状态。要将其流式传输到浏览器,请添加以下环境变量:

  ```yaml
  environment:
    AUDIO: "Y"
  ```

  然后在 Web 查看器中,在**设置 → 高级**下启用**音频**。该流仅在启用此选项时处于活动状态,否则不会占用额外的带宽。

### 如何为容器分配独立 IP 地址?

  默认情况下,容器使用桥接网络,与宿主机共享 IP 地址。

  如果您想为容器分配一个独立的 IP 地址,可以按如下方式创建 macvlan 网络:

  ```bash
  docker network create -d macvlan \
      --subnet=192.168.0.0/24 \
      --gateway=192.168.0.1 \
      --ip-range=192.168.0.100/28 \
      -o parent=eth0 vlan
  ```
  
  请务必将这些值修改为与您的本地子网一致。

  创建好网络后,将您的 compose 文件修改为如下所示:

  ```yaml
  services:
    windows:
      container_name: windows
      ..<snip>..
      networks:
        vlan:
          ipv4_address: 192.168.0.100

  networks:
    vlan:
      external: true
  ```
 
  这种方式的另一个好处是,您不再需要进行任何端口映射,因为默认情况下所有端口都会暴露。

> [!IMPORTANT]  
> 由于 macvlan 的设计不允许 Docker 宿主机与容器之间进行通信,因此无法从 Docker 宿主机访问此 IP 地址。如果您在意这一点,需要创建一个[第二个 macvlan](https://blog.oddbit.com/post/2018-03-12-using-docker-macvlan-networks/#host-access) 作为变通方案。

### Windows 如何从我的路由器获取 IP 地址?

  在将容器配置为 [macvlan](#how-do-i-assign-an-individual-ip-address-to-the-container) 后,Windows 可以像真实 PC 一样,通过向路由器请求 IP 来加入您的家庭网络。

  要启用此模式(容器和 Windows 将拥有各自的 IP 地址),请在 compose 文件中添加以下行:

  ```yaml
  environment:
    DHCP: "Y"
  devices:
    - /dev/vhost-net
  device_cgroup_rules:
    - 'c *:* rwm'
  ```

### 如何添加多个磁盘?

  要创建额外的磁盘,请像这样修改 compose 文件:
  
  ```yaml
  environment:
    DISK2_SIZE: "32G"
    DISK3_SIZE: "64G"
  volumes:
    - ./example2:/storage2
    - ./example3:/storage3
  ```

### 如何透传磁盘?

  您可以通过以下方式将磁盘设备或分区直接透传,只需将它们添加到 compose 文件中:

  ```yaml
  devices:
    - /dev/sdb:/disk1
    - /dev/sdc1:/disk2
  ```

  如果您希望某个磁盘成为主驱动器(在安装过程中会被格式化),请使用 `/disk1`;使用 `/disk2` 及更高编号将其添加为辅助驱动器(这些驱动器将保持原样,不会被改动)。

### 如何透传 USB 设备?

  要透传 USB 设备,请先使用 `lsusb` 命令查询其厂商 ID 和产品 ID,然后像这样将它们添加到 compose 文件中:

  ```yaml
  environment:
    ARGUMENTS: "-device usb-host,vendorid=0x1234,productid=0x1234"
  devices:
    - /dev/bus/usb
  ```

> [!WARNING]  
> 在 Windows 安装程序完成之前添加 USB 大容量存储设备可能会导致安装失败。更糟的是:该驱动器可能会被格式化为系统磁盘,您所有的数据都将丢失!因此,在首次启动容器时,请务必保持这些设备处于断开状态。

### 这些就是全部可用的选项吗?

  不是。有关所有受支持设置的完整概述,请参阅[环境变量](https://github.com/dockur/windows/blob/master/docs/environment.md)页面。

### 如何验证 KVM 是否可用?

  首先,请确保您的平台和容器运行时满足上文列出的[要求](#requirements-️)。

  在 Linux 宿主机上,安装 `cpu-checker` 并运行:

  ```bash
  sudo apt install cpu-checker
  sudo kvm-ok
  ```

  配置正常时应显示:

  ```text
  KVM acceleration can be used
  ```

  您还可以验证 KVM 设备是否存在:

  ```bash
  ls -l /dev/kvm
  ```

  如果 KVM 不可用,请检查是否存在以下情况:

  - 在 BIOS 或 UEFI 中是否启用了硬件虚拟化(`Intel VT-x` 或 `AMD-V`)。
  - 当宿主机本身是虚拟机时,是否启用了嵌套虚拟化。
  - 您的 VPS 或云提供商是否支持嵌套虚拟化。

  如果 `kvm-ok` 成功,但容器仍报告 KVM 不可用,您可以临时在 Compose 文件中添加 `privileged: true`,以排除权限或设备访问问题。

### 如何在容器中运行 macOS?

  您可以使用 [dockur/macos](https://github.com/dockur/macos)。它拥有许多相同的功能,但自动安装功能除外。

### 如何在容器中运行 Linux 桌面?

  这种情况下,您可以使用 [qemus/qemu](https://github.com/qemus/qemu)。

### 这个项目合法吗?

  是的,本项目仅包含开源代码,不分发 Windows 本身。代码中的任何产品密钥都是 Microsoft 为试用目的发布的通用安装密钥,并非有效的激活许可证。

  您有责任确保自己拥有有效的 Windows 许可证,并确保您的使用符合 Microsoft 的许可条款。

## 星标 🌟
[![Stargazers](https://raw.githubusercontent.com/star-stats/stars/refs/heads/data/charts/dockur-windows.svg)](https://github.com/dockur/windows/stargazers)

## 免责声明 ⚖️

*本项目中所提及的产品名称、徽标、品牌及其他商标均为其各自商标持有人的财产。本项目与 Microsoft Corporation 无任何隶属、赞助或背书关系。*

[build_url]: https://github.com/dockur/windows/
[hub_url]: https://hub.docker.com/r/dockurr/windows/
[tag_url]: https://hub.docker.com/r/dockurr/windows/tags
[pkg_url]: https://github.com/dockur/windows/pkgs/container/windows

[Build]: https://github.com/dockur/windows/actions/workflows/build.yml/badge.svg
[Size]: https://img.shields.io/docker/image-size/dockurr/windows/latest?color=066da5&label=size
[Pulls]: https://img.shields.io/docker/pulls/dockurr/windows.svg?style=flat&label=pulls&logo=docker
[Version]: https://img.shields.io/docker/v/dockurr/windows/latest?arch=amd64&sort=semver&color=066da5
[Package]: https://img.shields.io/badge/dynamic/json?url=https://ipitio.github.io/backage/dockur/windows/windows.json&query=$.downloads&logo=github&style=flat&color=066da5&label=pulls
下载工具