Docker : un chemin délicat vers Apple Silicon

Docker, désormais suffisamment mature pour un usage en prod sur les Mac M1 ? Il vient en tout cas de passer en phase de disponibilité globale, après quatre mois d’expérimentation*.

Cette version « native » ne l’est en fait pas totalement. Plusieurs binaires restent au format AMD64. Ce qui requiert la surcouche d’émulation Rosetta 2.

Autre élément à prendre en compte : certaines images ne sont pas disponibles pour Arm. MySQL en fait partie. Solution préférentielle, selon Docker : utiliser, à la place, MariaDB.

De manière générale, il est tout à fait possible d’utiliser des images x64 – dont celle de MySQL. Mais le résultat n’est pas garanti. QEMU peut effectivement échouer à exécuter certains conteneurs. La vidéo ci-dessous l’illustre avec Jenkins – qui n’a toujours pas d’image Arm à l’heure actuelle.

Des API demeurent par ailleurs non fonctionnelles sur QEMU. Par exemple inotify, qui fournit des informations sur le système de fichiers.

Ces problèmes devraient s’estomper à mesure qu’émergeront des images multiarchitectures. Docker a développé l’outil buildx à cet effet.

Mozilla aussi a gardé un peu de x64 dans son portage de Firefox. En l’occurrence, pour les modules de décodage multimédia, isolés et exécutés sur Rosetta 2. La fondation a opté pour la même implémentation avec Windows sur Arm.

Firefox fonctionne officiellement sur Apple Silicon depuis sa version 84, lancée mi-décembre 2020.
Le cercle des navigateurs compatibles s’est récemment élargi avec Opera (version 75). Tous logiciels confondus, les derniers grands noms à avoir rejoint la liste de « Does it ARM ? » sont Premiere Rush (1.5.58), Parallels Desktop (16) et Avast (14.9).

* Cette disponibilité globale concerne le pack Docker Desktop. Qui comprend Docker Engine, Docker CLI, Docker Compose, Kubernetes, Notary et Credential Helper.

Photo d’illustration ©