gitmyhub

windows

Shell ★ 52k updated 9h ago

Windows inside a Docker container.

Run a full Windows operating system inside a Docker container on Linux, with automatic installation and browser or Remote Desktop access.

ShellDockerKVMKubernetessetup: hardcomplexity 3/5

This project lets you run a full Windows operating system inside a Docker container, which is a lightweight software package that normally runs Linux-based applications. In plain terms, it turns Windows into just another containerized app you can spin up on a Linux server or developer machine, without needing a separate physical PC or a traditional virtual machine setup tool like VirtualBox or VMware.

Under the hood, the container uses KVM, a Linux kernel feature that provides fast hardware-level virtualization, meaning Windows runs at near-native speed. When you start the container, it automatically downloads the Windows ISO image you specify, installs it without any manual clicking, and exposes two ways to interact with it: a web browser viewer on port 8006 (so you can see and use Windows from any browser), and a standard Remote Desktop Protocol connection on port 3389. You can pick from a wide range of Windows versions, from Windows XP all the way up to Windows 11 and Windows Server 2025, just by setting a single environment variable.

You would reach for this when you need a Windows environment on a Linux host, for example to test Windows-only software, run automation tasks, or provide a disposable Windows sandbox that can be destroyed and recreated instantly. Developers and system administrators use it to avoid maintaining a dedicated Windows machine or paying for cloud Windows instances. Configuration is entirely done through environment variables in a Docker Compose file, covering RAM, CPU cores, disk size, language, keyboard layout, and user credentials. The tech stack is Shell scripting for the container orchestration logic, with Docker (and optionally Kubernetes) as the runtime environment.

Where it fits