Ticker

6/recent/ticker-posts

Ad Code

Responsive Advertisement

Exécuter Windows, Tiny11, Tiny10 dans un conteneur (Docker) sur Linux avec Dockurr

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.

Exécuter Windows, Tiny11, Tiny10 dans un conteneur (Docker) sur Linux 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
Installer la machine virtuelle à noyau (KVM) dans Linux

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
Exécuter Windows, Tiny11, Tiny10 dans un conteneur Linux (Docker) avec Dockurr

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
Exécuter Windows, Tiny11, Tiny10 dans un conteneur Linux (Docker) avec Dockurr

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 :
Exécuter Windows, Tiny11, Tiny10 dans un conteneur Linux (Docker) avec Dockurr
  • Ensuite une phase d’extraction du fichier win11x64.esd
  • Puis l’image de Windows 11 est construire
Exécuter Windows, Tiny11, Tiny10 dans un conteneur Linux (Docker) avec Dockurr
  • Ensuite qemu exécute l’installeur de Windows 11, la copie de fichiers s’effectuent
Exécuter Windows, Tiny11, Tiny10 dans un conteneur Linux (Docker) avec Dockurr
  • Une fois l’installation terminée, l’utilisateur se connectera automatiquement en utilisant le nom d’utilisateur docker
Exécuter Windows, Tiny11, Tiny10 dans un conteneur Linux (Docker) avec Dockurr

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
Les versions de Windows supportées par Dockurr
Exécuter Tiny11 dans un Docker Linux

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"

L’article Exécuter Windows, Tiny11, Tiny10 dans un conteneur (Docker) sur Linux avec Dockurr est apparu en premier sur malekal.com.

Enregistrer un commentaire

0 Commentaires