Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
windows — Запускайте Windows внутри Docker-контейнера с KVM-ускорением, автоматической установкой и настраиваемыми ресурсами. Поддерживает несколько версий Windows, проброс USB и сеть macvlan. | Kitploit
Инструменты/GitHubGitHub/dockur/windows
Утилиты общего назначенияБезопасность контейнеровВиртуализация для безопасностиБезопасность облачных сред
GitHubdockur/windows

windows

Запускайте Windows внутри Docker-контейнера с 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>

Windows в Docker-контейнере.

## Возможности ✨

- Запускает Windows внутри Docker-контейнера
- Автоматическая загрузка и установка без участия пользователя
- Поддержка современных и устаревших версий Windows
- Производительность, близкая к нативной, благодаря ускорению KVM
- Настраиваемое выделение CPU, памяти и дискового пространства
- Динамическое выделение памяти с помощью memory ballooning
- Проброс USB-устройств и общий доступ к папкам хоста
- Поддержка сетей NAT, user-mode, 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)

##### Графический установщик:

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

## Требования ⚙️

- Docker или Podman на Linux-хосте с поддержкой KVM.
- Docker Desktop или Podman (Desktop) на Windows 11 с включённой вложенной виртуализацией.
- Не менее 4 ГБ доступной оперативной памяти.
- Не менее 64 ГБ свободного дискового пространства.

> [!NOTE]
> Docker Desktop на Linux, macOS и Windows 10 в настоящее время не предоставляет контейнерам доступ к KVM и поэтому не поддерживается.

## FAQ 💬

### Как этим пользоваться?

  Очень просто! Вот шаги:
  
  - Запустите контейнер и подключитесь к [порту 8006](http://127.0.0.1:8006/) через веб-браузер.

  - Расслабьтесь и наблюдайте за магией: вся установка будет выполнена полностью автоматически.

  - Когда вы увидите рабочий стол, ваша установка Windows готова к использованию.
  
  Наслаждайтесь своей новой машиной и не забудьте поставить звезду этому репозиторию!

### Как выбрать версию Windows?

  По умолчанию будет установлена Windows 11 Pro. Но вы можете добавить переменную окружения `VERSION` в ваш compose-файл, чтобы указать альтернативную версию 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/).

### Как изменить расположение хранилища?

  Чтобы изменить расположение хранилища, добавьте следующий bind-mount в ваш compose-файл:

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

  Замените пример пути `./windows` на нужную папку хранилища или именованный том.

### Как изменить размер диска?

  Чтобы увеличить размер по умолчанию (64 ГБ), добавьте параметр `DISK_SIZE` в ваш compose-файл и укажите желаемый объём:

  ```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`, которую можно использовать для обмена файлами с хост-машиной.
  
  Чтобы выбрать для этой цели папку на хосте, добавьте следующий bind-mount в ваш compose-файл:

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

  Замените пример пути `./example` на нужную общую папку, которая затем будет отображаться как `Shared`.

### Как изменить количество CPU или RAM?

  По умолчанию Windows разрешено использовать 2 ядра CPU и 4 ГБ ОЗУ.

  Если вы хотите изменить это, укажите нужный объём с помощью следующих переменных окружения:

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

### Как настроить имя пользователя и пароль?

  По умолчанию создаётся пользователь `Docker` с паролем `admin`.

  Если вы хотите задать другие учётные данные при установке, вы можете настроить их в compose-файле:

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

### Как выбрать язык Windows?

  По умолчанию будет загружена английская версия Windows.
  
  Но вы можете добавить переменную окружения `LANGUAGE` в свой compose-файл, чтобы указать альтернативный язык для загрузки:

  ```yaml
  environment:
    LANGUAGE: "French"
  ```
  
  Вы можете выбрать между: 🇦🇪 арабский, 🇧🇬 болгарский, 🇨🇳 китайский, 🇭🇷 хорватский, 🇨🇿 чешский, 🇩🇰 датский, 🇳🇱 нидерландский, 🇬🇧 английский, 🇪🇪 эстонский, 🇫🇮 финский, 🇫🇷 французский, 🇩🇪 немецкий, 🇬🇷 греческий, 🇮🇱 иврит, 🇭🇺 венгерский, 🇮🇹 итальянский, 🇯🇵 японский, 🇰🇷 корейский, 🇱🇻 латышский, 🇱🇹 литовский, 🇳🇴 норвежский, 🇵🇱 польский, 🇵🇹 португальский, 🇷🇴 румынский, 🇷🇺 русский, 🇷🇸 сербский, 🇸🇰 словацкий, 🇸🇮 словенский, 🇪🇸 испанский, 🇸🇪 шведский, 🇹🇭 тайский, 🇹🇷 турецкий и 🇺🇦 украинский.

### Как выбрать раскладку клавиатуры?

  Если вы хотите настроить раскладку клавиатуры или языковой стандарт (locale), отличные от используемых по умолчанию для выбранного языка, вы можете добавить переменные `KEYBOARD` и `REGION` следующим образом:

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

### Как установить собственный образ?

  Чтобы загрузить неподдерживаемый ISO-образ, укажите его URL в переменной окружения `VERSION`:
  
  ```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?

  Веб-просмотрщик предназначен в основном для использования во время установки, поскольку он менее отзывчив, чем RDP, и не поддерживает такие функции, как общий буфер обмена.

  Поэтому для более удобной работы вы можете подключиться через любой клиент Microsoft Remote Desktop к IP-адресу контейнера, используя имя пользователя `Docker` и пароль `admin`.

  В Play Store доступен RDP-клиент для [Android](https://play.google.com/store/apps/details?id=com.microsoft.rdc.androidx), а в 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"
  ```

  Затем включите **Audio** в разделе **Settings → Advanced** в веб-просмотрщике. Поток активен только пока эта опция включена, поэтому в остальное время он не расходует дополнительный трафик.

### Как назначить контейнеру отдельный IP-адрес?

  По умолчанию контейнер использует bridge-сеть, которая разделяет 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]  
> Этот IP-адрес не будет доступен с Docker-хоста из-за особенностей macvlan, который не допускает взаимодействия между ними. Если это важно, вам нужно создать [второй 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 может стать частью вашей домашней сети, запросив 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-устройство, сначала узнайте его идентификаторы vendor и product с помощью команды `lsusb`, затем добавьте их в compose-файл следующим образом:

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

> [!WARNING]  
> Добавление USB-устройства массового хранения до завершения установки Windows может привести к её сбою. Или того хуже: диск может быть отформатирован как системный, и все ваши данные будут потеряны! Поэтому при первом запуске контейнера всегда держите их отключёнными.

### Это все доступные опции?

  Нет. Полный обзор всех поддерживаемых параметров см. на странице [переменных окружения](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 недоступен, проверьте, что:

  - Аппаратная виртуализация (`Intel VT-x` или `AMD-V`) включена в вашем BIOS или UEFI.
  - Вложенная виртуализация включена, если сам хост является виртуальной машиной.
  - Ваш VPS или облачный провайдер поддерживает вложенную виртуализацию.

  Если `kvm-ok` выполняется успешно, но контейнер по-прежнему сообщает, что KVM недоступен, вы можете временно добавить `privileged: true` в ваш Compose-файл, чтобы исключить проблему с правами доступа или доступом к устройству.

### Как запустить macOS в контейнере?

  Для этого вы можете использовать [dockur/macos](https://github.com/dockur/macos). Он поддерживает многие из тех же функций, кроме автоматической установки.

### Как запустить рабочий стол Linux в контейнере?

  В этом случае вы можете использовать [qemus/qemu](https://github.com/qemus/qemu).

### Законен ли этот проект?

  Да, этот проект содержит только open-source код и не распространяет саму 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
Скачать инструмент