Loading search data...

Docker - Faire tourner MacOS sur une machine Linux

Publié le : 31 janvier 2022 | Mis à jour le : 19 septembre 2022

logo docker

Voilà une idée qui va vous paraître un peu folle : Faire tourner MacOS sur une machine Linux, et cela, depuis une image Docker. C’est ce que propose le projet Docker-OSX disponible sur GitHub depuis quelques semaines.

Ça tombe très bien, car je voulais me faire une idée de MacOS avant de demander ma prochaine machine de travail. En effet, au départ je voulais acheter un MacBook Pro d’occasion, mais je vais en faire l’économie grâce à ce projet.

Docker OSX Macos

Prérequis pour installer Docker-OSX

Il faut que sur la machine Linux soit installé KVM et Docker. Sur une machine à base de Redhat :

sudo dnf install @virtualization

Il faut un processeur avec au moins 8 cores. Attention Docker-OSX prend beaucoup de place : 40 Go si ne vous voulez pas de persistance et 200 Go. Pour la mémoire 8 Go sur la machine est un minimum dont 4 Go pour MacOS.

Lancement de Docker-OSX

L’image Docker-OSX prend tout en charge, même le téléchargement de l’outil d’installation de MacOS. Pour que l’installation soit persistante i

Voici la ligne de commande pour installer MacOS Catalina.

docker run -it \
    --device /dev/kvm \
    -p 50922:10022 \
    -v /tmp/.X11-unix:/tmp/.X11-unix \
    -e "DISPLAY=${DISPLAY:-:0.0}" \
    sickcodes/docker-osx:latest

Pour installer MacOS Big Sur, il faudra remplacer le nom de l’image par sickcodes/docker-osx:big-sur.

On peut aussi lancer une version préinstallée de Catalina, ce qui ira plus vite :

# 40GB disk space required: 20GB original image 20GB your container.
docker pull sickcodes/docker-osx:auto

# boot directly into a real OS X shell with a visual display [NOT HEADLESS]
docker run -it \
    --device /dev/kvm \
    -p 50922:10022 \
    -v /tmp/.X11-unix:/tmp/.X11-unix \
    -e "DISPLAY=${DISPLAY:-:0.0}" \
    -e GENERATE_UNIQUE=true \
    sickcodes/docker-osx:auto

# username is user
# passsword is alpine

Pour ajouter des ressources il suffit d’ajouter les extra-vars suivant à la ligne de commande : -e RAM=8G -e CPU_STRING=8

Ensuite comme indiqué on peut se connecter à la machine via une SSH avec le user user et mot de passe alpine via le port 50922.

Vous pouvez utiliser également VNC pour accéder à l’interface graphique de MacOS.

Pour le moment je n’ai pas réussi à le faire fonctionner sur ma VM Linux de mon PC tournant sur Windows, mais cela doit car il existe des instructions pour le faire depuis WSL. Si je trouve je mettrais à jour le billet.


Si vous avez apprécié cet article de blog, vous pouvez m'encourager à produire plus de contenu en m'offrant un café sur   Ko-Fi  . Vous pouvez aussi passer votre prochaine commande sur amazon, sans que cela ne nous coûte plus cher, via   ce lien  . Vous pouvez aussi partager le lien sur twitter ou linkedin via les boutons ci-dessous. Je vous remercie de votre soutien


Mots clés :

devops tutorials docker

Autres Articles


Commentaires: