Lancez Windows de XP à la version 11 dans un conteneur Docker
@KORBEN — 3 AVRIL 2024
Vous en avez marre de devoir garder une vieille bécane sous Windows juste pour faire tourner ce vieux logiciel qui ne marche que sous XP ? Ou alors vous aimeriez bien tester la dernière version de Windows 11 mais vous n’avez pas envie de vous embêter à l’installer sur une vraie machine ? Dans les deux cas, j’ai la solution qu’il vous faut !
Grâce au projet open-source Windows dans un conteneur Docker, vous allez pouvoir faire tourner n’importe quelle version de Windows directement dans Docker, le tout avec une accélération KVM et même un affichage dans votre navigateur web si besoin.
Pour faire simple, il vous suffit de récupérer l’image Docker dockurr/windows, de la démarrer avec quelques options bien choisies, puis de vous connecter sur le port 8006 avec votre navigateur. Et là, magie, l’installation de Windows va se lancer automatiquement ! Vous n’avez plus qu’à vous détendre le temps que ça se termine. Une fois sur le bureau, votre installation de Windows est prête à l’emploi. Vous pouvez commencer à bricoler dessus comme sur une vraie machine. Le pied !
Par défaut c’est Windows 11 qui sera installé, mais vous pouvez très facilement choisir une autre version en passant la variable d’environnement VERSION dans votre fichier docker-compose.yml. Vous avez l’embarras du choix :
win11 : Windows 11 Pro
win10 : Windows 10 Pro
ltsc10 : Windows 10 LTSC
win81 : Windows 8.1 Pro
win7 : Windows 7 SP1
vista : Windows Vista SP2 (pour les nostalgiques)
winxp : Windows XP SP3 (carrément old-school)
2022 : Windows Server 2022
2019 : Windows Server 2019
2016 : Windows Server 2016
etc…
Et si vous voulez pousser encore plus loin, sachez qu’il est même possible d’installer une version allégée de Windows comme Tiny11 ! Pour ça, il vous suffit de passer la valeur tiny11 à la variable VERSION. Idéal pour avoir un Windows léger qui tourne comme une horloge dans un conteneur.
Ça se lance via Docker Compose :
version: "3"
services:
windows:
container_name: windows
image: dockurr/windows-arm
devices:
- /dev/kvm
cap_add:
- NET_ADMIN
ports:
- 8006:8006
- 3389:3389/tcp
- 3389:3389/udp
stop_grace_period: 2m
restart: on-failure
Ou directement comme ceci :
docker run -it --rm --name windows -p 8006:8006 --device=/dev/kvm --cap-add NET_ADMIN --stop-timeout 120 dockurr/windows
Bon par contre, le viewer VNC accessible dans le navigateur c’est surtout pratique pendant l’installation. Pour une utilisation plus sérieuse, mieux vaut utiliser un vrai client RDP en se connectant sur l’IP du conteneur Docker avec l’utilisateur docker. Il y a de très bons clients RDP dispos, que ce soit pour Android, iOS, Linux (rdesktop) ou même Windows où c’est carrément intégré à l’OS.
Évidemment, ne vous attendez pas à des miracles niveau performances, on parle d’un Windows qui tourne dans un conteneur Docker quand même ^^. D’ailleurs par défaut le conteneur a le droit à seulement 2 cœurs de CPU et 4 Go de RAM, ce qui correspond à la config minimale requise par Windows 11. Mais ça reste largement suffisant pour faire des tests ou utiliser des vieux logiciels.
Si jamais vous avez besoin de plus de ressources, vous pouvez augmenter ça facilement en ajoutant les variables d’environnement RAM_SIZE et CPU_CORES dans votre docker-compose.yml. Pareil si vous voulez augmenter la taille du disque virtuel qui fait 64 Go par défaut, c’est possible en passant l’option DISK_SIZE. Par exemple pour avoir un disque de 256 Go :
environment:
DISK_SIZE: "256G"
Enfin, si vous voulez bidouiller plus en profondeur, sachez qu’on peut même passer des périphériques entiers (disques, clés USB…) au conteneur pour que Windows puisse y accéder directement. Je vais pas m’étendre plus, je vous laisse aller consulter la doc.
Bref, vous l’aurez compris, ce projet est une petite merveille pour tous ceux qui ont besoin de faire tourner Windows dans un environnement isolé et facile à mettre en place. Que ce soit pour tester une appli, monter un labo ou même utiliser un logiciel qui ne tourne que sous Windows, ça peut dépanner dans plein de situations.
Et le meilleur dans tout ça ?
C’est que le projet ne contient que du code open-source et n’embarque aucun élément propriétaire. Les clés de licence utilisées dans le projet sont celles fournies par Microsoft à des fins de test. Donc a priori, c’est totalement légal. Après c’est sûr, faudra pas venir se plaindre si Microsoft n’est pas content qu’on fasse tourner Windows dans un conteneur Docker… 😀
Merci à Lorenper
REF.: https://korben.info/windows-docker-xp-11-vista-7-8-10-server-2016-2019-2022-rdp-kvm.html?fbclid=IwAR0qRv6z3nfkHn9bcDqmT3Sr8PVPcSpulmsS6Ulj26FzzNTcZNLVI5J1-kQ_aem_AWFT2-U946t8WkDXAdq3DrMmuaJ6iVmOl4vcsQVAwf03yU64RzE1ER12th7juGXi5m7wCzWfdDA6AsBMFeszYflD