Como correr windows sobre docker

Como correr windows sobre docker

Hoy os traigo un proyecto curioso, el cual nos permite correr un windows 2000, XP, Vista Ultimate, 7 ultimate, 8.1 Enterprise, 10 Enterprise, 10 LSTC, 10 PRO, 11 Enterprise, 11 LTSC, 11 PRO, 2003,2008, 2012, 2016, 2019, 2022 y 2025 sobre docker para usarlo para pentest, pruebas, proxy o lo que queramos.

Todo esto es gracias al proyecto https://github.com/dockur/windows

Yo voy a desplegarlo sobre una máquina debian que tengo en mi lab que tiene 16GB y 2 cores, ya que por defecto, usa 2 cores y 4GB de ram con un disco de 64GB

También es necesario que el contenedor tenga acceso KVM y no funcionan sobre Docker Desktop en linux, MacOSX y Windows 10, por no proporcionar ese acceso.

Para verificar, en un host windows, si KVM está disponible en nuestra máquina, usaremos cpu-checker. Ejecutamos los siguientes comandos:

sudo apt install cpu-checker
sudo kvm-ok

Si nos dice KVM acceleration can be used, podemos seguir con el despliegue del contenedor. En caso de darnos un error, no nos funcionará.

En mi caso, voy a crear un docker-compose, con el siguiente contenido:

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

Dejo aquí la tabla de versiones que podemos desplegar:

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

Para usar una u otra, cambiamos el valor de versión. En este caso, voy a desplegar un windows 11 PRO, por ello he puesto 11 como valor.

Lanzo el docker compose:

Y accedo, por el navegador a la ip de la máquina y puerto 8006 para ver el progreso:

Primero descargará la ISO:

Luego extraerá todos los ficheros crear la instalación personalizada

Crea el instalador

Arranca la máquina con la iso

Y empieza la instalación

Al finalizar la instalación, ya tendremos nuestro windows operativo

El usuario y contraseña Docker con password admin. Podemos modificar el usuario, la configuración regional, ram, cpu, etc con variables de entorno que podemos encontrar en el repo de github, https://github.com/dockur/windows