Pour les curieux désirant de voir à quoi ressemble MacOS sur Windows ou si vous gérez un parc de machines hétéroclites (Windows + Mac OS), il peut être pratique d’installer une machine virtuelle MacOS sur Windows pour faciliter vos dépannages. C’est possible au travers de Docker, je vous explique comment procéder dans ce tuto.
Prérequis
Pour faire tourner une machine virtuelle MacOS sur Windows avec Docker, voici les prérequis :
- Windows 11 avec WSL2
- Docker Desktop
- Le CPU de l’ordinateur hôte doit supporter la virtualisation Intel VT ou AMD-V avec l’option active dans le BIOS.
Tout ceci est possible grâce au projet Dockur/macos disponible sur GitHub !
Installer Docker Desktop
Télécharger et installer Docker pour Windows et activer l’intégration WSL dans les paramètres Docker :
- Onglet Général, option Use the WSL based engine.
- Onglet Ressources – WSL integration, option Enable integration with my default WSL distro.
Installer WSL2 sur Windows 11
WSL (Windows Subsystem for Linux) est un sous système permettant d’exécuter un environnement GNU/Linux sous Windows, sans recourir à une traditionnelle VM. Il permet aussi d’installer et exécuter une application Linux sur Windows. Voici comment installer WSL2 sur Windows 11 :
Ouvrez une fenêtre Powershell en Administrateur, puis tapez la commande suivante :
wsl --install

Vous pouvez ensuite lister les installations de WSL avec la commande wsl -l -v. La version doit être 2 :
wsl -l -v
Vérifier KVM
Maintenant que vous avez installé Ubuntu avec WSL2, il est nécessaire de vérifier que votre installation supporte bien la virtualisation avec KVM.
Lancez une fenêtre Powershell en administrateur et tapez la commande wsl pour rentrer dans le batch de la distribution WSL. Vérifiez si KVM peut être utilisé en tapant la commande kvm-ok. Vous devez obtenir un message KVM acceleration can be used.

Si KVM vous retourne une commande non trouvée, faites un petit apt update upgrade de votre distribution et installez cpu-checker :
sudo apt update && sudo apt -y upgrade
sudo apt install cpu-checker
Si vous obtenez le message, Your CPU does not support KVM extensions, il faut vérifier que votre CPU soit bien compatible avec la virtualisation Intel VT ou AMD-V, et qu’elle est bien active.
Si vous faites tourner votre conteneur dans une machine virtuelle, vous devez activer la virtualisation imbriquée:
- tapez la commande
Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $truedans Powershell en admin, en remplaçantVMNamepar le nom de votre machine virtuelle Windows 11 - Naviguez dans le dossier
c:\Users\<nom>ou%UserProfile%et éditez le fichier.wslconfig. S’il n’existe pas, créez-le. Renseignez-y à la fin les informations suivantes :
[wsl2]
nestedVirtualization=true
Installer MacOS sur Windows avec Docker
Une fois les étapes précédentes réalisées, il suffit de lancer une commande dans l’invite de commande Windows pour démarrer votre conteneur MacOS dans votre environnement Docker. Par exemple, pour MacOS 13 Ventura :
docker run -it -p 8006:8006 --name MacOS -e RAM_SIZE=8G -e CPU_CORES=4 -e VERSION=13 --device=/dev/kvm --device=/dev/net/tun --cap-add NET_ADMIN --stop-timeout 120 -v "D:/01_Virtualisation/Docker/MacOS/storage:/storage" dockurr/macos
Le paramètre -v permet de définir un dossier persistant sur votre PC. C’est dans ce dossier que Docker stocke le disque macOS. Tant que ce dossier existe, la machine est conservée et vous n’avez pas besoin de refaire l’installation.
Vous pouvez ajuster :
RAM_SIZEpour la mémoire allouée,CPU_CORESpour le nombre de vCPU.
⚠️ Important :
- En dessous de 4 vCPU, les performances deviennent rapidement limitées. Si vous ne savez pas combien de vCPU allouer, je vous invite à consulter l’article combien de vCPU puis-je allouer sur Hyper-V. Vous devez aussi allouer un minimum de 4Go de RAM.
- Si vous ajoutez l’option
--rmà la commandedocker run, le conteneur est supprimé automatiquement à l’arrêt. Pour conserver la machine et ses données, n’utilisez pas--rm.
Alternative recommandée : utiliser docker-compose
Il est également possible (et souvent plus pratique) d’utiliser un fichier docker-compose.yml, ce qui permet notamment de centraliser la configuration et de préciser clairement le répertoire de stockage :
services:
macos:
image: dockurr/macos
container_name: MacOS
environment:
RAM_SIZE: 24G # Ajustez selon votre machine
CPU_CORES: 14 # Ajustez selon votre CPU
VERSION: 13 # macOS Ventura
devices:
- /dev/kvm
- /dev/net/tun
cap_add:
- NET_ADMIN
stop_grace_period: 2m
ports:
- "8006:8006"
volumes:
- "D:/01_Virtualisation/Docker/MacOS/storage:/storage" # répertoire de stockage du disque
Patientez le temps du téléchargement de l’image, puis vous verrez indiqué dans PowerShell End of EFI boot. Vous pouvez accéder à votre environnent MacOS Docker depuis un navigateur au travers de l’adresse : http://localhost:8006/ grâce à noVNC et Qemu.
Une fois arrivé sur l’invite d’installation, vous devez aller dans Disk Utility pour formater la partition.
Sélectionnez la partition Apple Inc. VirtIO Block Media de la taille la plus importante puis cliquez sur Eraze.
Donnez un nom quelconque à votre partition puis appuyez sur le bouton Eraze pour formater la partition en AFS.
Une fois terminée, quittez l’utilitaire Disk Utility puis allez sur l’option Réinstall macOS Big Sur. Appuyez sur Continue.
L’assistant d’installation MacOS va s’ouvrir. Sélectionnez la partition que vous venez de créer et procéder à l’installation de MacOS sur votre environnement Windows. Armez-vous de patience, l’installation peut être assez longue !
Une fois l’installation terminée, vous arriverez sur un écran de sélection de la langue. Poursuivez les étapes jusqu’à arriver au bureau MacOS. Ce n’est pas très fluide, mais une fois arrivé sur le bureau MacOS, ça va mieux !
moi ca fonctionne #1, mais l’accélération graphique ne fonctionne visiblement pas.
Merci beaucoup David ! Même un débutant comme moi a réussi avec ton tuto
Petite question de débutant justement : une fois la machine lancée et fonctionnelle, comment la garder sans refaire toute la manip s’il te plait ?
Daniel
Hello Daniel,
Avec plaisir 🙂
Tout dépend de la commande utilisée.
Si tu lances la machine avec l’option
--rm, elle est supprimée à l’arrêt et il faut donc tout refaire.Pour la conserver, il suffit de ne pas utiliser
--rmet, idéalement, d’utiliser un dossier persistant (avec-v) pour stocker le disque.Ensuite, tu peux simplement l’arrêter et la relancer, sans rien réinstaller 👍
Bonjour, j’écris docker run -it -p 8006:8006 –name MacOS -e RAM_SIZE=8G -e CPU_CORES=4 -e VERSION=13 –device=/dev/kvm –device=/dev/net/tun –cap-add NET_ADMIN –stop-timeout 120 dockurr/macos
et çà me donne docker: unknown server OS:
Run ‘docker run –help’ for more information
Bonjour,
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 du problème ? Merci.
Bonjour Pierres-Yves,
A l’étape « Vérifier KVM », vous obtenez bien « KVM acceleration can be used » ? Et si vous faites tourner docker dans une VM Windows 11, il faut activer la virtualisation imbriquée.
Bonjour,
Oui j’ai bien le message « KVM acceleration can be used ».
J’ai, de plus, créé un fichier .wslconfig dans la lequel j’ai mis:
[wsl2]
nestedVirtualization=true
Par contre je n’ai pas passé la commande « Set-VMProcessor -VMName -ExposeVirtualizationExtensions $true » car je ne suis pas dans une machine virtuelle windows 11 mais dans une machine physique sous windows 11 dans laquelle je lance mon dockur macos
Ok donc si pas de VM, la virtualisation imbriquée n’est pas nécessaire, je la désactiverais complètement + redémarrer Windows. Essayez éventuellement d’ajouter le volume dans la commande docker run :
-v "${PWD:-.}/macos:/storage". Ce qui donne :docker run -it -p 8006:8006 --name MacOS -e RAM_SIZE=8G -e CPU_CORES=4 -e VERSION=13 --device=/dev/kvm --device=/dev/net/tun --cap-add NET_ADMIN -v "${PWD:-.}/macos:/storage" --stop-timeout 120 dockurr/macosEssayez sinon de diminuer la RAM, CPU ou encore d’essayer un autre version MacOS.
Merci et c’est franchement très fonctionnel.
J’ai installé la dernière version (15) et lui ai attribué 24 Go de RAM et 16 CPU et ca tourne sans problème… pas de lenteur et tout est fonctionnel.
Merci de m’avoir permis d’explorer Docker de manière plus profonde.
Merci pour votre retour ! Je n’ai pas testé la toute dernière version, mais ravi d’apprendre que tout fonctionne parfaitement avec votre config !
Parfait, bien mieux que vmware ou virtualbox
à l’étape « Installer MacOS sur Windows avec Docker » il y a une erreure qui me dit :
docker: invalid reference format.
je ne comprend pas même avec l’aide d’internet est cee que vous pourriez m’aider ? merci d’avance 😉
Je ne vois pas à première vue, êtes-vous sûr d’avoir bien copié/coller ou tapé la bonne commande ?