Dockur : découvrez comment exécuter Windows 11, Tiny 11 et macOS dans un conteneur Docker !
Sommaire
I. Présentation
Exécuter Windows ou macOS et pourquoi pas les deux au sein de conteneurs Docker, c'est possible ! Le projet open source Dockur rend cela possible avec une approche simple basée sur des fichiers Docker Compose.
Que ce soit pour créer un environnement de test rapide, isoler une machine Windows sans machine virtuelle classique, ou lancer macOS sans hackintosh, Dockur offre une solution originale qui combine Docker et KVM. À la lecture de ces premières lignes, certains vont trouver cela inutile, tandis que d'autres vont déjà avoir des idées plein la tête ! Je serai curieux d'avoir votre avis en commentaire !
II. Dockur : une VM dans un conteneur
Dockur est un projet open source qui encapsule un environnement QEMU/KVM dans un conteneur Docker, dans le but de faire tourner des systèmes d’exploitation complets comme Windows et macOS, dans des conteneurs. Les performances ne sont pas mises de côté, puisque vous pouvez personnaliser les ressources du conteneur et même bénéficier de l’accélération matérielle via KVM.
Ce projet est tout de même original et surprenant, puisque nous parlons d'une image complète de l'OS, ce qui est contraire au concept initial de Docker en comparaison des machines virtuelles. Ici, ce sera bien un conteneur Docker d'un point de vue technique, mais ce conteneur lance une instance QEMU qui démarre un vrai système d’exploitation avec son propre noyau, son propre système de fichiers, etc.
Dans le cadre de cette démonstration, nous allons nous intéresser aux images suivantes :
dockurr/windows: pour les systèmes Windows (installation automatique ou manuelle).dockurr/macos: pour macOS (installation manuelle).
III. Prérequis
Vous devez disposer d'une machine prenant en charge la virtualisation matérielle (Intel VT-x ou AMD-V), comme pour n'importe quel hyperviseur. Pourquoi ? Tout simplement parce que Dockur a besoin de KVM pour fonctionner.
- Pour une compatibilité maximale, une machine sous Linux est préférable. Pour ma part, je vais utiliser une machine sous Debian 13.
- Docker doit être installé sur cette machine.
Si vous avez besoin d'aide pour installer Docker :
IV. Dockur : démonstration complète en vidéo
Regardez la vidéo ci-dessous pour découvrir pas à pas comment exécuter Windows et macOS dans un conteneur avec Dockur.
Au programme de cette vidéo :
- La présentation du projet Dockur
- L'expérience d'utilisation de Windows et macOS
- Le déploiement d'un conteneur Windows
- Le déploiement d'un conteneur macOS
Dans la suite de cet article, vous pourrez retrouver les ressources nécessaires, notamment les fichiers Docker Compose utilisés.
V. Déployer Windows avec Dockur
A. Fichier Docker Compose
Ci-dessous, le fichier docker-compose.yml pour déployer Windows 11 Pro par l'intermédiaire de Dockur.
services:
windows:
image: dockurr/windows
container_name: windows
environment:
VERSION: "11"
LANGUAGE: "French"
REGION: "fr-FR"
KEYBOARD: "fr"
USERNAME: "adm_itconnect"
PASSWORD: "P@ssword!"
RAM_SIZE: "4G"
CPU_CORES: "4"
DISK_SIZE: "64G"
GPU: "Y"
devices:
- /dev/kvm
- /dev/net/tun
- /dev/dri/renderD128
cap_add:
- NET_ADMIN
ports:
- 8006:8006
- 3389:3389/tcp
volumes:
- ./windows:/storage
restart: always
stop_grace_period: 2m
Si vous préférez miser sur la légèreté, vous pouvez déployer Tiny11, la version ultra-légère de Windows 11 (non officielle). Dans ce cas, utilisez ce code pour le fichier Docker Compose (anglais obligatoire) :
services:
windows:
image: dockurr/windows
container_name: windows
environment:
VERSION: "core11"
LANGUAGE: "ENGLISH"
REGION: "en-US"
KEYBOARD: "fr"
USERNAME: "adm_itconnect"
PASSWORD: "P@ssword!"
RAM_SIZE: "2G"
CPU_CORES: "2"
DISK_SIZE: "32G"
GPU: "Y"
devices:
- /dev/kvm
- /dev/net/tun
- /dev/dri/renderD128
cap_add:
- NET_ADMIN
ports:
- 8006:8006
- 3389:3389/tcp
volumes:
- ./windows:/storage
restart: always
stop_grace_period: 2m
Pour ma part, le fichier a été créé à l'emplacement suivant :
/opt/docker-compose/dockur-windows/docker-compose.yaml
Le répertoire suivant doit aussi être créé pour le stockage des données (monté via l'instruction volumes) :
sudo mkdir /opt/docker-compose/dockur-windows/windows
Pour lancer le déploiement du conteneur, exécutez cette commande :
docker compose up -d
Puis accédez à votre conteneur, et donc à votre Windows, depuis votre navigateur : http://<adresse-IP-hôte-Docker>:8006. Par défaut, le conteneur ne disposera pas de sa propre adresse IP, mais si c'est votre souhait, sachez que c'est possible (créez un réseau macvlan).

B. Choix de la version de Windows
Dockur peut déployer différentes versions de Windows et Windows Server, y compris Windows 11 et Windows Server 2025. Voici les versions actuellement prises en charge et les valeurs à utiliser, d'après le GitHub officiel du projet.
| Valeur | Version | Taille |
|---|---|---|
11 | Windows 11 Pro | 5.4 GB |
11l | Windows 11 LTSC | 4.7 GB |
11e | Windows 11 Enterprise | 4.0 GB |
10 | Windows 10 Pro | 5.7 GB |
10l | Windows 10 LTSC | 4.6 GB |
10e | Windows 10 Enterprise | 5.2 GB |
8e | Windows 8.1 Enterprise | 3.7 GB |
7u | Windows 7 Ultimate | 3.1 GB |
vu | Windows Vista Ultimate | 3.0 GB |
xp | Windows XP Professional | 0.6 GB |
2k | Windows 2000 Professional | 0.4 GB |
2025 | Windows Server 2025 | 5.6 GB |
2022 | Windows Server 2022 | 4.7 GB |
2019 | Windows Server 2019 | 5.3 GB |
2016 | Windows Server 2016 | 6.5 GB |
2012 | Windows Server 2012 | 4.3 GB |
2008 | Windows Server 2008 | 3.0 GB |
2003 | Windows Server 2003 | 0.6 GB |
core11 | Tiny 11 Core | 2.1 GB |
tiny11 | Tiny 11 | 3.8 GB |
tiny10 | Tiny 10 | 3.6 GB |
C. Script post-installation
Dockur permet de personnaliser l'installation de Windows en exécutant automatiquement un script à la fin de l'installation. Pour cela, il suffit de créer un fichier nommé install.bat, qui contiendra les instructions que vous souhaitez lancer (installation de logiciels, configuration système, copie de fichiers, etc.).
Ce fichier doit être placé dans un dossier local (par exemple ./oem à créer dans le dossier dockur-windows), avec tous les fichiers nécessaires à votre script (le package MSI d'un logiciel, par exemple).
Ensuite, dans votre fichier docker-compose.yml, vous devez monter ce dossier dans le conteneur avec la directive suivante :
volumes:
- ./windows:/storage
- ./oem:/oem
Lors de l'installation, Dockur copiera automatiquement le contenu de ce dossier dans le répertoire C:\OEM de la machine virtuelle Windows. Le fichier install.bat y sera exécuté automatiquement, vous permettant ainsi d’automatiser des tâches de post-déploiement.
D. Connexion RDP
Vous pouvez aussi vous connecter en Bureau à distance (RDP) à votre machine Windows.
Utilisez simplement le client RDP (mstsc.exe sous Windows) de votre machine et connectez-vous sur l'adresse IP de votre hôte Docker. Le port par défaut est utilisé, à savoir le port 3389. C'est pour cette raison que nous déclarons le port 3389 au niveau du conteneur.
VI. Déployer macOS avec Dockur
A. Fichier Docker Compose
Ci-dessous, le fichier docker-compose.yml pour déployer macOS Sequoia par l'intermédiaire de Dockur.
services:
macos:
image: dockurr/macos
container_name: macos
environment:
VERSION: "15"
devices:
- /dev/kvm
- /dev/net/tun
cap_add:
- NET_ADMIN
ports:
- 8007:8006
- 5900:5900/tcp
- 5900:5900/udp
volumes:
- ./macos:/storage
restart: always
stop_grace_period: 2m
Note : nous utilisons le port
8007au lieu du port8006, car ce dernier est déjà occupé par le conteneur Windows. Sans cela, vous ne pouvez pas faire tourner ces deux conteneurs en même temps.
Ce fichier a été créé à l'emplacement suivant, à savoir dans un répertoire différent de celui de Windows :
/opt/docker-compose/dockur-macos/docker-compose.yaml
Le répertoire suivant doit aussi être créé pour le stockage des données (monté via l'instruction volumes) :
sudo mkdir /opt/docker-compose/dockur-macos/macos
Pour lancer le déploiement du conteneur, exécutez cette commande :
docker compose up -d
Puis accédez à votre conteneur et lancez l'installation manuellement (obligatoire avec macOS). Accédez à cette adresse depuis votre navigateur : http://<adresse-IP-hôte-Docker>:8007

B. Choix de la version de macOS
Comme pour Windows, Dockur prend en charge plusieurs versions de macOS. Vous devez ajuster la variable VERSION pour faire votre choix.
environment:
VERSION: "15"
Ci-dessous les versions actuellement supportées par Dockur :
| Valeur | Version | Nom |
|---|---|---|
15 | macOS 15 | Sequoia |
14 | macOS 14 | Sonoma |
13 | macOS 13 | Ventura |
12 | macOS 12 | Monterey |
11 | macOS 11 | Big Sur |
VII. Conclusion
Dockur propose une approche originale pour faire tourner des systèmes d’exploitation complets dans des conteneurs Docker, tout en profitant des performances de KVM. Que ce soit pour Windows ou macOS, l’expérience est fluide et adaptée à des besoins de test, de formation ou même à d'autres scénarios : une intégration avec KASM étant envisageable.
Qu'en pensez-vous ? Avez-vous déjà identifié des scénarios d'utilisation ? Nous attendons vos retours en commentaire !


Est-ce qu’il est possible de faire remonter dans Windows les périphériques USB connectés à la machine physique ?
bonjour, pour mac os ,l’installation redemarre en boucle es normal?
Pour ma part il me dit que l’installation dure 8h et j’ai l’impression que ça n’avance pas beaucoup depuis que j’ai lancer l’installation il y a 2h…Sinon le reste fonctionne correctement super découverte
Personnellement un intérêt pour moi ça serait de pouvoir streamer le contenu du docker Windows sur ma tablette Android par exemple.
Ça fait un moment que je cherche comment faire est-ce que quelqu’un a déjà essayé ?
Bonjour,
Ne fonctionne pas, message « lost connection » et reboot en boucle
Bonjour,
Avec quel OS ? Avez-vous regardé les logs du conteneur ?
Ne pas mettre : GPU: « Y »
J’ai l’écransupport.apple.com/mac/startup qui s’affiche
Bonjour,
j’ai suivi le tuto mais j’ai cette erreur
Error response from daemon: error gathering device information while adding custom device « /dev/kvm »: no such file or directory
je suis sur un laptop dell avec vmware et debian 13 ; je chercher mais impossible de trouvez.
merci de vos aides.
Bonjour,
J’ai voulu faire la manip avec dockur macos dans un docker sous windows 11.
je reste bloqué sur la pomme (au milieu de l’avancement du boot avant le choix du DD).
J’ai le message suivant :
BdsDxe: failed to load Boot0001 « UEFI Misc Device » from PciRoot(0x0)/Pci(0xA,0x0): Not Found
BdsDxe: loading Boot0002 « UEFI Misc Device 2 » from PciRoot(0x0)/Pci(0x5,0x0)
BdsDxe: starting Boot0002 « UEFI Misc Device 2 » from PciRoot(0x0)/Pci(0x5,0x0)
#[EB|LOG:EXITBS:END] _
#[EB.BST.FBS|-]
#[EB|B:BOOT]
#[EB|LOG:HANDOFF TO XNU] _
======== End of efiboot serial output. ========
Ce qui laisse penser qu’il ne trouve pas de device.
Avez-vous une idée ?
Bonjour,
d’un point de vue légale cette solution me semble très « limite » …
quel est votre point de vue à ce sujet ?
Pour l’install Windows, 0 souci hormis l’activation, mais ça c’est autre chose 🙂
Pour Mac le disque monté ne fait que 3 Go alors que j’ai encore de la place sur ma partition hôte.
Une idée?
sinon projet très sympa !