Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Submit
ToolsExploitsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
windows — Run Windows inside a Docker container with KVM acceleration, automatic installation, and customizable resources. Supports multiple Windows versions, USB passthrough, and macvlan networking. | Kitploit
Tools/GitHubGitHub/dockur/windows
General Purpose UtilitiesContainer SecuritySecurity VirtualizationCloud Security
GitHubdockur/windows

windows

Run Windows inside a Docker container with KVM acceleration, automatic installation, and customizable resources. Supports multiple Windows versions, USB passthrough, and macvlan networking.

View Repository
52.8k4.6k372 days agoReviewed by Kitploit

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

Windows

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

Windows inside a Docker container.

Features ✨

  • Runs Windows inside a Docker container
  • Automatic download and hands-free installation
  • Supports modern and legacy Windows releases
  • Near-native performance with KVM acceleration
  • Customizable CPU, memory, and storage allocation
  • Dynamic memory allocation with memory ballooning
  • USB passthrough and host folder sharing
  • Supports NAT, user-mode, macvlan, and macvtap networking

Video 📺

YouTube

Usage 🐳

Docker Compose:
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:
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:
kubectl apply -f https://raw.githubusercontent.com/dockur/windows/refs/heads/master/kubernetes.yml
GitHub Codespaces:

Open in GitHub Codespaces

Graphical installer:

Download WinBoat

Requirements ⚙️

  • Docker or Podman on a Linux host with KVM support.
  • Docker Desktop or Podman (Desktop) on Windows 11 with nested virtualization enabled.
  • At least 4 GB of available RAM.
  • At least 64 GB of free disk space.

[!NOTE] Docker Desktop on Linux, macOS, and Windows 10 does not currently provide KVM access to containers and is therefore not supported.

FAQ 💬

How do I use it?

Very simple! These are the steps:

  • Start the container and connect to port 8006 using your web browser.

  • Sit back and relax while the magic happens, the whole installation will be performed fully automatically.

  • Once you see the desktop, your Windows installation is ready for use.

Enjoy your brand new machine, and don't forget to star this repo!

How do I select the Windows version?

By default, Windows 11 Pro will be installed. But you can add the VERSION environment variable to your compose file, in order to specify an alternative Windows version to be downloaded:

environment:
  VERSION: "10"

Select from the values below:

ValueVersionSize
11Windows 11 Pro7.9 GB
11lWindows 11 LTSC4.7 GB
11eWindows 11 Enterprise6.6 GB
10Windows 10 Pro5.7 GB
10lWindows 10 LTSC4.6 GB
10eWindows 10 Enterprise5.2 GB
8eWindows 8.1 Enterprise3.7 GB
7uWindows 7 Ultimate3.1 GB
vuWindows Vista Ultimate3.0 GB
xpWindows XP Professional0.6 GB
2kWindows 2000 Professional0.4 GB
2025Windows Server 20257.6 GB
2022Windows Server 20226.0 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

[!TIP] To install ARM64 versions of Windows use dockur/windows-arm.

How do I change the storage location?

To change the storage location, include the following bind mount in your compose file:

volumes:
  - ./windows:/storage

Replace the example path ./windows with the desired storage folder or named volume.

How do I change the size of the disk?

To expand the default size of 64 GB, add the DISK_SIZE setting to your compose file and set it to your preferred capacity:

environment:
  DISK_SIZE: "256G"

[!TIP] This can also be used to resize an existing disk to a larger capacity without any data loss. However, you will need to manually extend the disk partition afterwards, since the added disk space will appear as unallocated.

How do I share files with the host?

After installation there will be a folder called Shared on your desktop, which can be used to exchange files with the host machine.

To select a folder on the host for this purpose, include the following bind mount in your compose file:

volumes:
  -  ./example:/shared

Replace the example path ./example with your desired shared folder, which then will become visible as Shared.

How do I change the amount of CPU or RAM?

By default, Windows will be allowed to use 2 CPU cores and 4 GB of RAM.

If you want to adjust this, you can specify the desired amount using the following environment variables:

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

How do I configure the username and password?

By default, a user called Docker is created and its password is admin.

If you want to set up different credentials during installation, you can configure them in your compose file:

environment:
  USERNAME: "bill"
  PASSWORD: "gates"

How do I select the Windows language?

By default, the English version of Windows will be downloaded.

But you can add the LANGUAGE environment variable to your compose file, in order to specify an alternative language to be downloaded:

environment:
  LANGUAGE: "French"

You can choose between: 🇦🇪 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 and 🇺🇦 Ukrainian.

How do I select the keyboard layout?

If you want to set up a keyboard layout or locale that is not the default for your selected language, you can add KEYBOARD and REGION variables like this:

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

How do I install a custom image?

In order to download an unsupported ISO image, specify its URL in the VERSION environment variable:

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

Alternatively, you can also skip the download and use a local file instead, by binding it in your compose file in this way:

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

Replace the example path ./example.iso with the filename of your desired ISO file. The value of VERSION will be ignored in this case.

How do I run a script after installation?

Download Tool