Running Windows 11 in Docker on a ZimaBoard

Recently, I explored a fascinating way to run Windows 11 directly within a Docker container on my ZimaBoard. This setup uses the dockurr/windows Docker image, which makes it surprisingly simple to virtualize a full version of Windows for testing purposes.

Setting Up Windows 11 on Docker

To set up Windows 11 in Docker, you will need to create a docker-compose.yml file with the following configuration:

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:
      - /data/windows11_data:/storage
    stop_grace_period: 2m

Key Steps to Prepare:

  1. Create the Storage Folder: mkdir -p /data/windows11_data
  2. Deploy the Container: docker-compose up -d

This setup will pull the Windows 11 ISO directly from Microsoft servers and begin the installation within the container.

Versions Available

You can specify different versions by changing the VERSION parameter in the docker-compose.yml file. Here are the available versions:

  • 11 – Windows 11 Pro (5.4 GB)
  • 11l – Windows 11 LTSC (4.2 GB)
  • 11e – Windows 11 Enterprise (5.8 GB)
  • 10 – Windows 10 Pro (5.7 GB)
  • 10l – Windows 10 LTSC (4.6 GB)
  • 10e – Windows 10 Enterprise (5.2 GB)
  • And many more, including Windows Server versions.

Accessing Windows 11 in the Browser

You can view and interact with the Windows 11 installation in a web browser using the following link:

http://192.168.0.215:8006/?resize=scale&reconnect=true&autoconnect=true

Alternatively, you can use Remote Desktop (mstsc) to connect to the container via port 3389.

Persistent Storage and Licensing

  • Storage: The /data/windows11_data volume ensures persistent storage, meaning you can install software and perform tests.
  • License: A valid Windows license key is still required for activation.

Important Note About Updates

The Windows installation is based on an ISO downloaded during the initial setup. Therefore, updating the container image itself will not update Windows. To receive the latest version, you would need to delete the persistent storage and reinstall the container.


My Experience and Recommendation

I tested this setup on my ZimaBoard, and while it worked, the performance was limited due to the hardware constraints. For a smoother experience, I recommend running Windows 11 on a more powerful Proxmox server with direct virtualization support.

This method of running Windows in Docker provides an interesting alternative for temporary tests, development environments, and isolated Windows instances. It’s great to see how flexible Docker has become, even for complex operating systems like Windows.

Stay tuned for more experiments and technical insights on my homepage!