Alternative à Docker Desktop sur MacOS

À compter du 31 janvier 2022, Docker change la licence d’utilisation de Docker Desktop. Nous allons explorer les alternatives gratuites à Docker Desktop.

Docker Desktop est le logiciel fourni par Docker pour faire tourner Docker sur MacOS et Windows. Le nouveau contrat de licence devient payant pour les entreprises à compter d’une certaine taille. Si votre entreprise a plus de 250 employés (utilisateurs de Docker ou non) ou a un chiffre d’affaire de plus de 10 millions d’euros par an, vous devez souscrire à un abonnement pour chaque utilisateur de Docker Desktop.

L’absence de noyau Linux sur MacOS ne permet pas de démarrer des containers Docker nativement. Il faut absolument une solution de virtualisation, et c’est ce que propose Docker Desktop.

Les nouveaux processeurs M1 de Apple limitent également les solutions possibles pour exécuter une machine virtuelle. Fin 2021, seul QEMU permet d’exécuter une plateforme Linux sur MacOS.

Si vous souhaitez ne pas utiliser Docker Desktop pour construire des images Docker et les exécuter, des solutions alternatives existent.

Lima et colima

colima est un projet open-source sous licence MIT facilitant la mise en place d’un environnement permettant d’utiliser Docker sur MacOS.

colima s’installe avec Homebrew:

$ brew install colima

Une fois installé, il suffit de démarrer colima:

$ colima start

Le client Docker doit également être installé:

$ brew install docker

colima va créer une VM lima puis installer le serveur Docker dans cette VM. La communication entre le serveur Docker et le client s’effectue via la socket /var/run/docker.sock qui est exposée sur MacOS. Il n’y a donc aucune configuration à effectuer sur Mac : la commande docker fonctionne dès que colima est démarré.

lima (et par conséquent colima) utilise une configuration réseau particulière qui permet aux requêtes réseaux faites depuis la VM Linux de passer par le VPN s’il y en a un actif sur MacOS et utilise le serveur DNS récursif de MacOS.

Autres solutions

multipass est une solution développée par Canonical pour exécuter des VM Linux (par défaut, une distribution Ubuntu) sur MacOS.

Il est possible d’installer le serveur Docker, puis de configurer le client Docker pour communiquer avec lui. Cependant, la VM QEMU créée n’a pas la configuration réseau nécessaire pour utiliser le VPN de MacOS, ni le serveur DNS du système.

Si vos images Docker utilisent des resources accessibles uniquement avec le VPN de votre entreprise, que cela soit pour construire les images ou les exécuter, cela ne fonctionnera pas.