Exécuter Windows dans un conteneur Docker avec Dockur/Windows

Vous avez besoin de faire tourner une ancienne version de Windows, ou vous souhaitez tester la dernière version de Windows 11 sans avoir à réinstaller un système complet ? Dockur/Windows vous permet d’exécuter n’importe quelle version de Windows directement dans un conteneur Docker. Cette solution flexible permet d’installer des environnements Windows, de profiter de l’accélération matérielle KVM, et d’accéder à l’interface graphique via un navigateur.

Installation de Dockur/Windows

Commencez par récupérer l’image Docker de Dockur/Windows :

docker pull dockurr/windows

Ensuite, vous pouvez démarrer un conteneur avec l’accélération KVM activée et un accès à l’interface via le navigateur :

docker run -it --rm --name windows -p 8006:8006 --device=/dev/kvm --cap-add NET_ADMIN dockurr/windows

Cela lancera un conteneur Windows que vous pourrez configurer en accédant à l’adresse http://localhost:8006 dans votre navigateur. L’installation de Windows se déroulera automatiquement et sera disponible comme si vous utilisiez une machine physique.

Choisir la version de Windows

Par défaut, Windows 11 Pro est installé, mais Dockur/Windows vous permet de choisir parmi de nombreuses versions de Windows grâce à la variable d’environnement VERSION dans un fichier docker-compose.yml. Voici la liste des versions disponibles et leurs tailles correspondantes :

VersionNomTaille
win11Windows 11 Pro5.4 GB
ltsc11Windows 11 LTSC4.2 GB
win11eWindows 11 Enterprise5.8 GB
win10Windows 10 Pro5.7 GB
ltsc10Windows 10 LTSC4.6 GB
win10eWindows 10 Enterprise5.2 GB
win8Windows 8.1 Pro4.0 GB
win8eWindows 8.1 Enterprise3.7 GB
win7Windows 7 Enterprise3.0 GB
vistaWindows Vista Enterprise3.0 GB
winxpWindows XP Professional0.6 GB
2025Windows Server 20255.0 GB
2022Windows Server 20224.7 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

Vous pouvez personnaliser l’installation en modifiant le fichier docker-compose.yml. Par exemple, pour installer Windows 10 LTSC :

version: "3"
services:
  windows:
    container_name: windows
    image: dockurr/windows
    devices:
      - /dev/kvm
    cap_add:
      - NET_ADMIN
    ports:
      - 8006:8006
      - 3389:3389/tcp
      - 3389:3389/udp
    environment:
      VERSION: "ltsc10"
    stop_grace_period: 2m
    restart: on-failure

Connexion via RDP

Une fois Windows installé, vous pouvez vous connecter via le protocole RDP pour un accès plus fluide. Utilisez un client RDP pour vous connecter à l’IP du conteneur Docker sur le port 3389 avec l’utilisateur docker. Vous aurez ainsi accès à un environnement Windows fonctionnant dans un conteneur, idéal pour les tests et les développements.

Optimisation des ressources

Par défaut, Dockur/Windows est configuré avec 2 cœurs CPU et 4 Go de RAM. Si vous avez besoin de plus de ressources, vous pouvez ajuster les paramètres via le fichier docker-compose.yml en ajoutant des variables d’environnement comme RAM_SIZE, CPU_CORES, et DISK_SIZE. Voici un exemple pour augmenter la taille du disque virtuel à 256 Go :

environment:
  DISK_SIZE: "256G"

Intégration avec Kasm Workspace

Si vous souhaitez centraliser et sécuriser l’accès à votre machine Windows conteneurisée, Kasm Workspace est une excellente solution. Kasm permet aux utilisateurs de se connecter à des environnements de travail virtuels à partir d’un navigateur avec une interface simple et intuitive.

Étape 1 : Ajouter le serveur Windows dans Kasm

  1. Accédez au tableau de bord administrateur de Kasm Workspace.
  2. Allez dans Infrastructure > Serveurs et cliquez sur Ajouter un serveur.
  3. Configurez le serveur :
  • Nom convivial : Win10Docker (ou tout autre nom pertinent).
  • Nom d’hôte ou IP : Utilisez le nom d’hôte ou l’adresse IP du conteneur (par exemple win10.guacamole si vous utilisez un service DNS ou ClusterIP sous Kubernetes).
  • Type de connexion : Sélectionnez RDP.
  • Port : Entrez 3389, le port par défaut pour RDP.
  • Identifiants de connexion : Utilisez l’utilisateur .\docker et le mot de passe que vous avez configuré dans votre conteneur Windows (aucun mot de passe par défaut)

Étape 2 : Créer un espace de travail dans Kasm

  1. Allez dans Workspaces > Ajouter un espace de travail.
  2. Sélectionnez Serveur comme type d’espace de travail.
  3. Associez le serveur Windows ajouté à cet espace.
  4. Définissez les paramètres de session (nombre de sessions simultanées, durée, etc.).
  5. Assignez cet espace de travail aux utilisateurs ou aux groupes qui auront accès à cette machine.

Étape 3 : Configuration des droits d’accès

Groupes : vous pouvez configurer les droits d’accès au niveau du groupe pour simplifier la gestion. Allez dans Administration > Gestion d’accès > Groupes, sélectionnez le groupe voulu puis dans Espaces de travail cliquez sur Ajouter des espaces de travail pour les ajouter au groupe voulu. Les utilisateurs de ce groupe auront alors accès au serveur dans leur espace de travail Kasm.

Conclusion

Dockur/Windows est une solution idéale pour exécuter plusieurs versions de Windows dans des conteneurs Docker, ce qui vous permet de tester, développer et déployer des environnements Windows de manière simple et rapide. L’intégration avec Kasm Workspace ajoute une couche supplémentaire de gestion et de sécurité, offrant un accès RDP à des machines virtuelles depuis un navigateur. C’est une option parfaite pour les développeurs, les administrateurs systèmes, ou tout utilisateur ayant besoin d’un environnement Windows isolé et léger.

Pour plus d’informations, vous pouvez consulter le projet Dockur/Windows sur GitHub.