Pour utiliser Windows dans Linux, vous avez la solution VirtualBox.
Mais grâce à Dockurr, nouveau projet open source, vous pouvez exécuter Windows à l’intérieur d’un conteneur Docker sans avoir à franchir de nombreuses étapes.
De plus, le conteneur fournit une connexion VNC et RDP notamment accessible par un simple navigateur internet.
Enfin les performances sont bonnes grâce à l’accélération KVM (Kernel Virtual Machine).
Dans ce tutoriel, je vous guide pour exécuter Windows, Tiny11, Tiny10 dans un conteneur Linux (Docker) avec Dockurr.
Qu’est-ce que Dockurr?
Dockurr est un projet libre et gratuit qui permet d’exécuter des installations de bureau Windows client et Windows Server dans un environnement de conteneur Docker. Il vous permet également de le faire sur un hôte Docker Linux qui ne pourrait normalement exécuter que des conteneurs Linux. En utilisant l’accélération KVM, il vous permet d’exécuter des conteneurs Windows sur un hôte de conteneur Linux sans avoir besoin d’installer et de démarrer Docker Desktop ou d’autres problèmes de compatibilité qui sont typiques avec le mélange de systèmes d’exploitation entre Linux et Windows.
Il fournit également une connexion VNC au conteneur pendant le processus d’installation. Il vous permet également de vous connecter via le protocole de bureau à distance (RDP) à l’installation Windows exécutée dans Docker.
Quelles sont les configurations de distribution Windows prises en charge ?
- Windows 11 Pro
- Windows 10 Pro
- Windows 10 LTSC
- Windows 8.1 Pro
- Windows 7 SP1
- Windows Vista SP2
- Windows XP SP3
- Windows Server 2022
- Windows Server 2019
- Windows Server 2016
- Windows Server 2012 R2
- Windows Server 2008 R2
- Tiny 11 Core
- Tiny 11
- Tiny 10
Installer la machine virtuelle à noyau (KVM)
Dans un premier temps, Docker doit être installé sur votre appareil en Linux.
Si ce n’est pas le cas, vous pouvez consulter ce guide : Comment installer Docker sur Linux
Ensuite, vous devez installer KVM (Kernel Virtual Machine) et qemu :
- Exécutez la commande suivante à partir de la ligne de commande pour installer KVM. Assurez-vous d’être root ou de faire partie du groupe d’utilisateurs sudo :
sudo apt install libvirt-clients libvirt-daemon-system libvirt-daemon virtinst bridge-utils qemu-system qemu-kvm
- Validez par O et laissez les paquets s’installer
Télécharger Dockurr dans un conteneur et lancer Windows dans un conteneur Docker
Après avoir installé KVM sur notre hôte Docker Linux, nous pouvons maintenant lancer le conteneur Docker appelé Dockurr, qui utilise l’isolation de KVM.
Deux manières sont possibles, par docker run ou par docker compose.
La méthode docker run est la plus automatisé et rapide. Voici comment faire :
- Dans mon cas, j’ai du passer la commande suivante pour autoriser les sockets Docker à être utilisé par les utilisateurs Linux
sudo chmod 666 /var/run/docker.sock
- Vous pouvez utiliser la commande docker run à partir de l’interface de commande de docker pour exécuter le conteneur :
docker run -it --rm --name windows -p 8006:8006 --device=/dev/kvm --cap-add NET_ADMIN --stop-timeout 120 dockurr/windows
La méthode par docker compose vous permet de modifier le fichier de configuration si vous souhaitez installer une autre version de Windows ou modifier la configuration du réseau (voir fin de ce guide).
Voici comment faire :
- Cloner le dépôt Git :
git clone https://github.com/dockur/windows.git
- Modifiez le fichier compose.yml si besoin (voir plus bas)
- Puis exécutez le conteneur :
cd windows
docker-compose up -d
L’image de Windows se télécharge puis l’installation de l’OS s’effectue.
- Après avoir utilisé les commandes ci-dessus pour installer la solution Dockurr, vous pouvez vous connecter au conteneur sur votre hôte de conteneur en vous connectant à votre hôte de conteneur dans un navigateur sur le port 8006 pour l’accès à l’interface utilisateur.
- Lorsque vous démarrez la configuration de conteneur par défaut, elle tire une image Docker Windows 11. Notez l’exemple de configuration Docker compose ci-dessous :
- Ensuite une phase d’extraction du fichier win11x64.esd
- Puis l’image de Windows 11 est construire
- Ensuite qemu exécute l’installeur de Windows 11, la copie de fichiers s’effectuent
- Une fois l’installation terminée, l’utilisateur se connectera automatiquement en utilisant le nom d’utilisateur docker
Voila, Windows s’exécute dans un conteneur Docker.
Ici nous utilisons le navigateur internet pour se connecter via VNC, mais vous pouvez aussi prendre la main sur Windows par RDP, avec par exemple le bureau à distance.
Le port utilisé est celui par défaut, à savoir le port 3389.
Exécuter différentes images du système d’exploitation Windows dans Docker
Comme mentionné en introduction, plusieurs versions de Windows sont supportés.
Par défaut, c’est Windows 11 qui est installé, mais vous pouvez modifier la partie suivante du fichier compose.yml pour changer la version de Windows :
environment:
VERSION: "win11"
Vous pouvez utiliser les désignateurs suivants dans la variable d’environnement pour indiquer la version de Windows que vous souhaitez lancer (win11, win10, ltsc10, win7, etc.) dans la liste d’informations ci-dessous :
Valeur | Description | Source | Transfert | Taille |
win11 | Windows 11 Pro | Microsoft | Rapide | 6,4 Go |
win10 | Windows 10 Pro | Microsoft | Rapide | 5,8 Go |
ltsc10 | Windows 10 LTSC | Microsoft | Rapide | 4,6 Go |
win81 | Windows 8.1 Pro | Microsoft | Rapide | 4,2 Go |
win7 | Windows 7 SP1 | Bob Pony | Moyen | 3,0 Go |
vista | Windows Vista SP2 | Bob Pony | Moyen | 3,6 Go |
winxp | Windows XP SP3 | Bob Pony | Moyen | 0,6 Go |
2022 | Windows Server 2022 | Microsoft | Rapide | 4,7 Go |
2019 | Windows Server 2019 | Microsoft | Rapide | 5,3 Go |
2016 | Windows Server 2016 | Microsoft | Rapide | 6,5 Go |
2012 | Windows Server 2012 R2 | Microsoft | Rapide | 4,3 Go |
2008 | Windows Server 2008 R2 | Microsoft | Rapide | 3,0 Go |
core11 | Tiny 11 Core | Archive.org | Lent | 2,1 Go |
tiny11 | Tiny 11 | Archive.org | Lent | 3,8 Go |
tiny10 | Tiny 10 | Archive.org | Lent | 3,6 Go |
Outre les versions de Windows que vous pouvez installer par défaut, vous pouvez également utiliser des images personnalisées pour vos supports Windows. Il suffit de définir l’emplacement web de l’ISO personnalisée de Windows comme suit :
environment:
VERSION: "https://exemple.com/win.iso"
Vous pouvez également utiliser directement un fichier local et éviter le téléchargement en le liant de cette manière à votre fichier de composition :
volumes: - /home/user/example.iso:/storage/custom.iso
Personnaliser la configuration du conteneur
Vous avez la possibilité de modifier la configuration de l’hôte Windows.
Configurer le réseau
Par défaut, les conteneurs utilisent un réseau ponté qui utilise l’adresse IP de l’hôte Docker. Cependant, selon les détails de la documentation.
Si vous souhaitez connecter vos conteneurs Windows à un réseau spécifique en production, vous pouvez le faire avec une configuration supplémentaire.
Vous pouvez changer cela manuellement :
docker network create -d macvlan \
--subnet=192.168.0.0/24 \
--gateway=192.168.0.1 \
--ip-range=192.168.0.100/28 \
-o parent=eth0 vlan
Ensuite, votre fichier Docker compose peut utiliser ce nouveau réseau en le modifiant comme suit :
services:
windows:
container_name: windows
..<snip>..
networks:
vlan:
ipv4_address: 192.168.0.100
networks:
vlan:
external: true
Modifier le CPU, mémoire et taille disque
Enfin pour modifier le nombre de CPU et la taille de la mémoire, modifiez la partie environnement du fichier de configuration :
environment:
RAM_SIZE: "8G"
CPU_CORES: "4"
DISK_SIZE: "256G"
Liens
- Virtualbox : exécuter Linux Ubuntu, Windows ou Debian dans une machine virtuelle
- Dual-boot : Comment avoir plusieurs systèmes d’exploitation sur votre ordinateur
- Installer WSL (Windows Subsystem for Linux) sur Windows 10
- Accéder à Linux (Debian, Ubuntu) via le bureau à distance depuis Windows (xRDP)
- EasyWSL : Exécuter Linux dans Windows 10, 11 WSL
L’article Exécuter Windows, Tiny11, Tiny10 dans un conteneur (Docker) sur Linux avec Dockurr est apparu en premier sur malekal.com.
0 Commentaires