Installer MacOS sur Windows avec Docker

Ce tutoriel vous explique comment installer une machine virtuelle MacOS sur Windows 11 avec Docker Desktop.

mac os windows
Partager :

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.

💻 Besoin d’aide avec votre ordinateur ?

👉 Assistance informatique Lecoindunet

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 RessourcesWSL 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
WSL version 2

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 $true dans Powershell en admin, en remplaçant VMName par 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_SIZE pour la mémoire allouée,
  • CPU_CORES pour 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 commande docker 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.

image

Une fois arrivé sur l’invite d’installation, vous devez aller dans Disk Utility pour formater la partition.

MacOS Docker Disk Utility

Sélectionnez la partition Apple Inc. VirtIO Block Media de la taille la plus importante puis cliquez sur Eraze.

MacOS Docker Eraze partition

Donnez un nom quelconque à votre partition puis appuyez sur le bouton Eraze pour formater la partition en AFS.

macOS DOcker eraze AFS

Une fois terminée, quittez l’utilitaire Disk Utility puis allez sur l’option Réinstall macOS Big Sur. Appuyez sur Continue.

Option Réinstall MacOS Ventura

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 !

installation macos sur Docker Windows

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 !

machine virtuelle MacOS sur Docker
Partager :

Avez-vous trouvé cet article utile ?
Article utile ?
ℹ️ À savoir Ce formulaire est privé et ne permet pas de réponse.
Pour poser une question ou laisser un commentaire public, utilisez la zone de commentaires plus bas sur la page.

Logo LeCoinDuNet
💻 Besoin d’une aide informatique ?

Je propose une assistance informatique à distance pour vous aider à dépanner votre PC ou vos logiciels.
Service 100 % Lecoindunet.com

Une idée d’article ou un sujet à proposer ? 👉 Soumettre un article ou une idée

13 commentaires

  1. 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

    1. 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 --rm et, 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 👍

  2. 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

  3. 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.

    1. 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.

      1. 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

        1. 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/macos
          Essayez sinon de diminuer la RAM, CPU ou encore d’essayer un autre version MacOS.

  4. 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.

    1. 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 !

  5. à 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 😉

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *