Skip to content

Guide · Open source

How to use dockur/windows: run Windows in Docker

Updated · written with AI from the project's own documentation and checked against our catalogue data

dockur/windows runs a Windows virtual machine inside a Docker container. It downloads a Windows edition for you, installs it automatically, and lets you view the desktop in a web browser or through a Remote Desktop client. This guide covers the requirements, how to start the container, and the settings most people change, so you can have a working Windows environment on a Linux machine.

dockur/windowsdockur/windows · ★ 54k · MIT

Quick start

  1. 1Check your host. Confirm you have a Linux host with KVM support, at least 2 GB of available RAM and at least 32 GB of free disk space.
  2. 2Start the container. Run the docker run command for Windows 11, or add the same settings to a Docker Compose file.
  3. 3Open the web viewer. Go to port 8006 in your browser and wait while Windows downloads and installs automatically.
  4. 4Pick a version and resources. Set VERSION, DISK_SIZE, RAM_SIZE and CPU_CORES in the environment section if the defaults do not fit.
  5. 5Connect over RDP. Use a Microsoft Remote Desktop client to the container's IP with the default username and password, or the ones you configured.

Check the requirements before you start

You need Docker or Podman on a Linux host with KVM virtualization support. The project also lists Docker Desktop or Podman Desktop on Windows 11 with nested virtualization enabled as an option.

The host needs at least 2 GB of available RAM and at least 32 GB of free disk space.

  • Docker Desktop on Linux, macOS, and Windows 10 does not currently provide KVM access to containers, so it is not supported.
  • For ARM64 Windows, the README points to a separate project, dockur/windows-arm.

Start Windows 11 with the Docker CLI

The quickest way to start is a single docker run command. It pulls the image, passes through the KVM and TUN devices, and maps port 8006 for the web viewer. The Windows files are stored in a windows folder in your current directory.

  • -e "VERSION=11" selects Windows 11, the default edition.
  • -p 8006:8006 exposes the web viewer on port 8006.
  • -v "${PWD:-.}/windows:/storage" stores the virtual machine data in ./windows on the host.
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

Run it with Docker Compose

If you already manage services with Docker Compose, you can define the same setup in a compose file. It also publishes RDP port 3389 over TCP and UDP and sets a restart policy.

Start the service with the usual Compose commands for your installed version.

  • Keep the devices and cap_add entries, since the container needs /dev/kvm, /dev/net/tun and NET_ADMIN.
  • Port 8006 is the web viewer; port 3389 is for Remote Desktop.
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

Open the desktop and choose a Windows version

Once the container is running, open http://127.0.0.1:8006 in your browser. The installation runs automatically, and when you see the desktop, Windows is ready. By default Windows 11 Pro is installed.

To pick another edition, set the VERSION environment variable. The source lists values from Windows 11 and 10 down to Windows XP, 98 and 95, plus Server editions from 2003 to 2025, Tiny11, Tiny10 and ReactOS. Download sizes listed range from 0.1 GB (ReactOS) to 7.9 GB (Windows 11 Pro).

  • Examples from the list: 10 (Windows 10 Pro), 11l (Windows 11 LTSC), xp (Windows XP Professional), 2022 (Windows Server 2022).
  • Ready-made ARM64 images are not covered here; use dockur/windows-arm for those.
environment: VERSION: "10"

Set disk size, CPU and RAM

The default disk is 64 GB. Set DISK_SIZE to expand it. The project notes that you can also use this to resize an existing disk without data loss, but you must extend the partition inside Windows afterwards, because the new space appears as unallocated.

By default Windows may use 2 CPU cores and 4 GB of RAM. Adjust these with RAM_SIZE and CPU_CORES.

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

Share files and connect with Remote Desktop

To exchange files with the host, add a bind mount to a host folder. After installation it appears as a Shared folder on the desktop and as drive Z:.

The web viewer is mainly for installation because it is less responsive than RDP and does not support clipboard sharing. For daily use, connect with a Microsoft Remote Desktop client to the container's IP using the username Docker and password admin, unless you have changed the credentials.

  • Android and iOS have Microsoft Remote Desktop apps; on Linux the project suggests FreeRDP; on Windows type mstsc in the search box.
  • Audio is off by default. Set AUDIO: "Y" and enable Audio under Settings → Advanced in the web viewer to stream it.
volumes: - ./example:/shared

What people use it for

  • Running a Windows environment on a Linux server without installing Windows on the host.
  • Testing software against different Windows versions, including older releases such as XP or 98.
  • Running Windows managed by Docker Compose alongside other containers.
  • Trying Server editions from 2003 to 2025 in a disposable container with docker run --rm.

Frequently asked questions

Is dockur/windows free to use?

The project is released under the MIT licence, according to its repository. The Windows editions it downloads are still subject to Microsoft's own licence terms, which the project does not change.

What do I need to run dockur/windows?

You need Docker or Podman on a Linux host with KVM support, at least 2 GB of available RAM and at least 32 GB of free disk space. Docker Desktop on Linux, macOS and Windows 10 does not provide KVM access to containers and is not supported.

Can I run dockur/windows on macOS or Windows 10?

Not with Docker Desktop on macOS, Linux or Windows 10, because the README says those do not give containers KVM access. Docker Desktop or Podman Desktop on Windows 11 with nested virtualization enabled is listed as an option.

How do I run Windows XP or 98 in a container?

Set the VERSION environment variable to xp or 98. The project's table lists XP Professional at 0.6 GB and Windows 98 at 0.7 GB as download sizes.

What is the default username and password?

By default a user called Docker is created with the password admin. You can set USERNAME and PASSWORD in your compose file to use different credentials.

Are there alternatives to dockur/windows?

The README lists WinBoat, WinApps, dockur/windows-arm and quickemu as related projects. WinBoat, WinPodX and WinApps are described as desktop applications that use this container as their backend.

New agent skills, repos and AI tools — every week

The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.

Our verdict

dockur/windows suits people with a KVM-capable Linux machine or server who want Windows managed with Docker or Docker Compose, including developers testing old or new releases. If your machine lacks KVM, you need ARM64 Windows, or you have less than the listed minimum RAM or disk, pick another approach such as installing Windows directly or using a project like quickemu.

Install options & downloads