La Worldwide Developers Conference 2025 d’Apple a donné lieu à une foule d’annonces. Tans d’annonces que l’on a pas vu passer le lancement par Apple d’un nouveau framework de conteneurisation open-soure, et un outil shell appelé Container. Ces deux outils sont conçus pour créer et exécuter des conteneurs Linux en tant que machines virtuelles (VM) directement sur MacOS.
Ce framework est bien sûr optimisé pour fonctionner avec les processeurs Apple Silicon, et sera intégré nativement dans le prochain MacOS 26 (Tahoe). Bien entendu, vous pouvez déjà faire fonctionner Linux dans des conteneurs avec des outils de conteneurs tiers tels que Docker, Podman et Orbstack. Vous pouvez aussi facilement faire tourner Linux sur votre ancien Mac équipé d’un processeur Intel. Ou, avec plus d’efforts, faire tourner Asahi Linux sur des Mac avec les processeurs maison M.
Apple Container est écrit en Swift et sous licence Apache 2. Apple affirme que ces « conteneurs atteignent des temps de démarrage inférieurs à la seconde en utilisant une configuration du noyau Linux optimisée et un système de fichiers racine minimal avec un système d’initialisation léger ». Vous aurez besoin au minimum d’un Mac avec Apple Silicon à l’intérieur, de MacOS 15 et de Xcode 26 beta. Ces conteneurs sont conformes à l’Open Container Initiative.
Le framework de conteneurs d’Apple fait tourner une VM légère distincte pour chaque conteneur
Le framework utilise un système d’initialisation personnalisé appelé vminitd, également écrit en Swift, pour gérer le lancement des processus, le montage du système de fichiers et la communication entre l’hôte et le conteneur.
Contrairement à d’autres approches de conteneurs, qui exécutent plusieurs conteneurs dans une seule VM Linux, souvent lourde en ressources, le framework de conteneurs d’Apple fait tourner une VM légère distincte pour chaque conteneur. Ces VM sont basées sur Kata Containers, un projet bien connu et apprécié de la OpenInfra Foundation.
Chaque conteneur dispose de son propre environnement de noyau Linux isolé, ce qui renforce la sécurité et la confidentialité. Le système de fichiers racine minimal exclut la plupart des utilitaires de base et des bibliothèques dynamiques, ce qui réduit la surface d’attaque et la charge de maintenance.
Chaque conteneur peut se voir attribuer une adresse IP dédiée
Chaque conteneur peut également se voir attribuer une adresse IP dédiée, ce qui supprime le besoin de transfert de port et améliore l’isolation du réseau. Cependant, si vous essayez d’exécuter Container dans la version actuelle de MacOS 15, Sequoia, vous ne pouvez créer le réseau de conteneurs qu’avec le premier conteneur qui démarre.
Étant donné que le réseau XPC, l’aide à la communication interprocessus de base d’Apple, fournit des adresses IP aux conteneurs et que l’aide doit démarrer avant le premier conteneur, l’aide au réseau et vmnet peuvent être en désaccord sur l’adresse du sous-réseau, ce qui a pour conséquence de couper complètement les conteneurs du réseau. En bref, c’est une mauvaise nouvelle.
Cependant, ce problème sera corrigé d’ici la sortie de Tahoe, qui est actuellement en version bêta pour les développeurs. Pour l’instant, si vous essayez de faire fonctionner les conteneurs sous MacOS 15, vous pouvez vous attendre à quelques problèmes.
Le rôle central des conteneurs Linux dans le développement de logiciels modernes
Vous vous demandez peut-être : « Pourquoi Apple adopte-t-elle cette approche ? » Eh bien, cette stratégie aidera les développeurs qui travaillent sur des projets Linux, il doit donc y avoir une demande en ce sens.
La démarche d’Apple reconnaît tacitement le rôle central des conteneurs Linux dans le développement de logiciels modernes en offrant une expérience transparente, performante et sécurisée aux développeurs Linux utilisant un Mac. À bien y réfléchir, cela ressemble beaucoup à ce que Microsoft a fait pour les développeurs Linux basés sur Windows avec son Windows Subsystem for Linux.
En proposant des outils natifs et open-source, Apple positionne MacOS comme une plateforme de premier ordre pour le développement basé sur des conteneurs, optimisée pour son propre matériel et son propre écosystème de développeurs.