Windows à l’intérieur d’un conteneur Docker.
Via Docker Composer :
services :
windows :
image : dockurr/windows
container_name : windows
environment :
VERSION : " 11 "
devices :
- /dev/kvm
cap_add :
- NET_ADMIN
ports :
- 8006:8006
- 3389:3389/tcp
- 3389:3389/udp
stop_grace_period : 2m
Via la CLI Docker :
docker run -it --rm -p 8006:8006 --device=/dev/kvm --cap-add NET_ADMIN --stop-timeout 120 dockurr/windows
Via Kubernetes :
kubectl apply -f kubernetes.yml
Très simple ! Voici les étapes :
Démarrez le conteneur et connectez-vous au port 8006 à l'aide de votre navigateur Web.
Asseyez-vous et détendez-vous pendant que la magie opère, toute l'installation sera réalisée de manière entièrement automatique.
Une fois que vous voyez le bureau, votre installation Windows est prête à être utilisée.
Profitez de votre toute nouvelle machine et n'oubliez pas de mettre en vedette ce dépôt !
Par défaut, Windows 11 sera installé. Mais vous pouvez ajouter la variable d'environnement VERSION
à votre fichier de composition, afin de spécifier une version alternative de Windows à télécharger :
environment :
VERSION : " 11 "
Sélectionnez parmi les valeurs ci-dessous :
Valeur | Version | Taille |
---|---|---|
11 | Windows 11 Professionnel | 5,4 Go |
11l | Windows 11 LTSC | 4,2 Go |
11e | Windows 11 Entreprise | 5,8 Go |
10 | Windows 10 Professionnel | 5,7 Go |
10l | Windows 10 LTSC | 4,6 Go |
10e | Windows 10 Entreprise | 5,2 Go |
8 | Windows 8.1 Professionnel | 4,0 Go |
8e | Windows 8.1 Entreprise | 3,7 Go |
7e | Windows 7 Entreprise | 3,0 Go |
ve | Windows Vista Entreprise | 3,0 Go |
xp | Windows XP Professionnel | 0,6 Go |
2025 | Windows Serveur 2025 | 5,0 Go |
2022 | Windows Serveur 2022 | 4,7 Go |
2019 | Windows Serveur 2019 | 5,3 Go |
2016 | Windows Serveur 2016 | 6,5 Go |
2012 | Windows Serveur 2012 | 4,3 Go |
2008 | Windows Serveur 2008 | 3,0 Go |
2003 | Windows Serveur 2003 | 0,6 Go |
Conseil
Pour installer les versions ARM64 de Windows, utilisez dockur/windows-arm.
Pour modifier l'emplacement de stockage, incluez le montage de liaison suivant dans votre fichier de composition :
volumes :
- /var/win:/storage
Remplacez l'exemple de chemin /var/win
par le dossier de stockage souhaité.
Pour étendre la taille par défaut de 64 Go, ajoutez le paramètre DISK_SIZE
à votre fichier de composition et définissez-le sur votre capacité préférée :
environment :
DISK_SIZE : " 256G "
Conseil
Cela peut également être utilisé pour redimensionner le disque existant à une plus grande capacité sans aucune perte de données.
Ouvrez « Explorateur de fichiers » et cliquez sur la section « Réseau », vous verrez un ordinateur appelé host.lan
. Double-cliquez dessus et il affichera un dossier appelé Data
, qui peut être lié à n'importe quel dossier de votre hôte via le fichier de composition :
volumes :
- /home/user/example:/data
Le dossier d'exemple /home/user/example
sera disponible sous \host.lanData
.
Conseil
Vous pouvez mapper ce chemin à une lettre de lecteur dans Windows, pour un accès plus facile.
Afin de télécharger une image ISO non prise en charge qui ne peut pas être sélectionnée dans la liste ci-dessus, spécifiez l'URL de cette image ISO dans la variable d'environnement VERSION
, par exemple :
environment :
VERSION : " https://example.com/win.iso "
Alternativement, vous pouvez également ignorer le téléchargement et utiliser un fichier local à la place, en le liant dans votre fichier de composition de cette manière :
volumes :
- /home/user/example.iso:/custom.iso
Remplacez l'exemple de chemin /home/user/example.iso
par le nom de fichier de votre fichier ISO souhaité, la valeur de VERSION
sera ignorée dans ce cas.
Pour exécuter votre propre script après l'installation, vous pouvez créer un fichier appelé install.bat
et le placer dans un dossier avec tous les fichiers supplémentaires dont il a besoin (logiciel à installer par exemple). Ensuite, liez ce dossier dans votre fichier de composition comme ceci :
volumes :
- /home/user/example:/oem
Le dossier d'exemple /home/user/example
sera copié dans C:OEM
lors de l'installation et le install.bat
contenant sera exécuté lors de la dernière étape.
Il est préférable de s'en tenir à l'installation automatique, car elle ajuste divers paramètres pour éviter les problèmes courants lors de l'exécution de Windows dans un environnement virtuel.
Cependant, si vous insistez pour effectuer l'installation manuellement, ajoutez la variable d'environnement suivante à votre fichier de composition :
environment :
MANUAL : " Y "
Par défaut, le conteneur sera autorisé à utiliser un maximum de 2 cœurs de processeur et 4 Go de RAM.
Si vous souhaitez ajuster cela, vous pouvez spécifier le montant souhaité à l'aide des variables d'environnement suivantes :
environment :
RAM_SIZE : " 8G "
CPU_CORES : " 4 "
Par défaut, un utilisateur appelé Docker
est créé lors de l'installation, avec un mot de passe vide.
Si vous souhaitez utiliser des informations d'identification différentes, vous pouvez les modifier dans votre fichier de composition :
environment :
USERNAME : " bill "
PASSWORD : " gates "
Par défaut, la version anglaise de Windows sera téléchargée. Mais vous pouvez ajouter la variable d'environnement LANGUAGE
à votre fichier de composition, afin de spécifier une langue alternative :
environment :
LANGUAGE : " French "
Vous pouvez choisir entre : ?? Arabe, ?? Bulgare, ?? Chinois, ?? Croate, ?? Tchèque, ?? Danois, ?? Néerlandais, ?? Anglais, ?? Estonien, ?? Finnois, ?? Français, ?? Allemand, ?? Grec, ?? Hébreu, ?? Hongrois, ?? Italien, ?? Japonais, ?? Coréen, ?? Letton, ?? Lituanien, ?? Norvégien, ?? Polonais, ?? Portugais, ?? Roumain, ?? Russe, ?? Serbe, ?? Slovaque, ?? Slovène, ?? Espagnol, ?? Suédois, ?? Thaï, ?? Turc et ?? Ukrainien.
Si vous souhaitez utiliser une disposition de clavier ou des paramètres régionaux qui ne sont pas ceux par défaut pour la langue sélectionnée, vous pouvez ajouter les variables KEYBOARD
et REGION
avec un code de culture, comme ceci :
environment :
REGION : " en-US "
KEYBOARD : " en-US "
Note
La modification de ces valeurs n'aura aucun effet une fois l'installation déjà effectuée. Utilisez le panneau de configuration de Windows dans ce cas.
La visionneuse Web est principalement destinée à être utilisée lors de l'installation, car sa qualité d'image est faible et elle n'a pas d'audio ni de presse-papiers par exemple.
Ainsi, pour une meilleure expérience, vous pouvez vous connecter à l'aide de n'importe quel client Microsoft Remote Desktop à l'adresse IP du conteneur, en utilisant le nom d'utilisateur Docker
et en laissant le mot de passe vide.
Il existe un client RDP pour Android disponible sur le Play Store et un pour iOS dans l'Apple Store. Pour Linux, vous pouvez utiliser FreeRDP et sous Windows, tapez simplement mstsc
dans la zone de recherche.
Par défaut, le conteneur utilise un pont réseau, qui partage l'adresse IP avec l'hôte.
Si vous souhaitez attribuer une adresse IP individuelle au conteneur, vous pouvez créer un réseau macvlan comme suit :
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
Assurez-vous de modifier ces valeurs pour qu'elles correspondent à votre sous-réseau local.
Une fois que vous avez créé le réseau, modifiez votre fichier de composition pour qu'il ressemble à ceci :
services :
windows :
container_name : windows
....
networks :
vlan :
ipv4_address : 192.168.0.100
networks :
vlan :
external : true
Un avantage supplémentaire de cette approche est que vous n'aurez plus à effectuer de mappage de port, puisque tous les ports seront exposés par défaut.
Important
Cette adresse IP ne sera pas accessible depuis l'hôte Docker en raison de la conception de macvlan, qui ne permet pas la communication entre les deux. Si cela pose un problème, vous devez créer un deuxième macvlan comme solution de contournement.
Après avoir configuré le conteneur pour macvlan, il est possible pour Windows de faire partie de votre réseau domestique en demandant une IP à votre routeur, tout comme un vrai PC.
Pour activer ce mode, ajoutez les lignes suivantes à votre fichier de composition :
environment :
DHCP : " Y "
devices :
- /dev/vhost-net
device_cgroup_rules :
- ' c *:* rwm '
Note
Dans ce mode, le conteneur et Windows auront chacun leurs propres adresses IP distinctes.
Pour créer des disques supplémentaires, modifiez votre fichier de composition comme ceci :
environment :
DISK2_SIZE : " 32G "
DISK3_SIZE : " 64G "
volumes :
- /home/example:/storage2
- /mnt/data/example:/storage3
Il est possible de transmettre directement les périphériques de disque en les ajoutant à votre fichier de composition de cette manière :
devices :
- /dev/sdb:/disk1
- /dev/sdc:/disk2
Utilisez /disk1
si vous souhaitez qu'il devienne votre lecteur principal (qui sera formaté lors de l'installation), et utilisez /disk2
et supérieur pour les ajouter en tant que lecteurs secondaires (qui resteront intacts).
Pour transmettre un périphérique USB, recherchez d'abord son fournisseur et son identifiant de produit via la commande lsusb
, puis ajoutez-les à votre fichier de composition comme ceci :
environment :
ARGUMENTS : " -device usb-host,vendorid=0x1234,productid=0x1234 "
devices :
- /dev/bus/usb
Important
Si le périphérique est un lecteur de disque USB, veuillez attendre la fin de l'installation avant de le connecter. Sinon, l'installation risque d'échouer, car l'ordre des disques peut être réorganisé.
Seuls Linux et Windows 11 prennent en charge la virtualisation KVM, macOS et Windows 10 ne le font malheureusement pas.
Vous pouvez exécuter les commandes suivantes sous Linux pour vérifier votre système :
sudo apt install cpu-checker
sudo kvm-ok
Si vous recevez une erreur de kvm-ok
indiquant que KVM ne peut pas être utilisé, veuillez vérifier si :
les extensions de virtualisation ( Intel VT-x
ou AMD SVM
) sont activées dans votre BIOS.
vous avez activé la « virtualisation imbriquée » si vous exécutez le conteneur dans une machine virtuelle.
vous n'utilisez pas de fournisseur de cloud, car la plupart d'entre eux n'autorisent pas la virtualisation imbriquée pour leurs VPS.
Si vous ne recevez aucune erreur de kvm-ok
mais que le conteneur se plaint toujours de KVM, veuillez vérifier si :
vous n'utilisez pas « Docker Desktop pour Linux » car il ne prend pas en charge KVM, utilisez plutôt Docker Engine directement.
il pourrait être utile d' privileged: true
à votre fichier de composition (ou sudo
à votre commande docker run
), pour exclure tout problème d'autorisation.
Vous pouvez utiliser dockur/macos pour cela. Il partage bon nombre des mêmes fonctionnalités, à l’exception de l’installation automatique.
Oui, ce projet contient uniquement du code open source et ne distribue aucun matériel protégé par le droit d'auteur. Toutes les clés de produit trouvées dans le code ne sont que des espaces réservés génériques fournis par Microsoft à des fins d'essai. Ainsi, en vertu de toutes les lois applicables, ce projet sera considéré comme légal.
Les noms de produits, logos, marques et autres marques déposées mentionnés dans ce projet sont la propriété de leurs titulaires respectifs. Ce projet n'est pas affilié, sponsorisé ou approuvé par Microsoft Corporation.