Aller au contenu principal

Afficher les logs de containers avec Dozzle"

· 3 minutes de lecture
Stéphane ROBERT
Consultant DevOps

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.

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.