# WindowsinDocker

WindowsinDocker is a self-hosted infrastructure app. Windows in Docker runs a full Windows operating system inside a Docker container using KVM hardware acceleration for near-native performance. It is open source and self-hosted, installable on Docker Hub and Unraid.

Canonical page: https://ourlocalhost.com/app/710/windowsindocker

## Description

Windows in Docker runs a full Windows operating system inside a Docker container using KVM hardware acceleration for near-native performance. It automatically downloads and installs Windows, supports modern and legacy releases, and allows customisable CPU, memory, and storage allocation for homelab users who need a Windows environment without a dedicated machine.

## Platform availability

Available on 1 of 9 platforms: Unraid.

## Health score

78/100 (Good), based on 5 of 5 factors.
- Maintained: 100 (last commit 18 days ago)
- Popular: 95 (53,566 GitHub stars)
- Easy to install: 35 (1 install platform, install notes, Docker image)
- Light to run: 40 (4 GB minimum RAM, runs on ARM)
- Security check: 85 (no serious findings, CI)

## Links

- GitHub: https://github.com/dockur/windows
- Docker Hub: https://hub.docker.com/r/dockurr/windows
- Unraid: https://ca.unraid.net/apps/windowsindocker-1kqmvgm02yer9m?q=WindowsinDocker

## Common questions

### Which environment variable selects the Windows version?

Set the VERSION environment variable, with 11 as the default. Other supported values include 10, 10l, 10e, 11l, 11e, and 8e.

### Is the built-in web viewer suitable for everyday use?

It is mainly for the initial install and has low image quality, no audio, and no clipboard. For a better experience, connect with a Microsoft Remote Desktop client to the container IP using the username Docker.

### Which ports should be exposed?

Expose port 8006 for the web interface and port 3389 over TCP and UDP for Remote Desktop.

### Where should persistent Windows data be stored?

Mount a host folder to the container's /storage path, such as ./windows:/storage.

### Which devices and capabilities are needed for KVM acceleration?

Pass /dev/kvm and /dev/net/tun to the container and add the NET_ADMIN capability.

---
Source: Our Local Host (https://ourlocalhost.com/app/710/windowsindocker), the self-hosted and open-source app directory.
