Docker promet des performances nettement améliorées sur macOS

Nicolas Furno |

Docker promet des performances bien meilleures sur les Mac grâce à une nouvelle option dans la dernière version et grâce à une nouveauté intégrée à macOS Monterey. La version 4.6 propose un nouveau réglage à activer après installation (dans les paramètres et « Experimental features ») et qui permettra alors d’utiliser VirtioFS pour les échanges de données entre macOS et les conteneurs virtualisés par le biais de Docker. C’est sur ce point que le gain de performances est attendu, avec jusqu’à 98 % de temps nécessaire en moins pour réaliser certaines opérations.

La deuxième option des fonctionnalités expérimentales dans Docker 4.6 doit être activée pour bénéficier du gain de performances.

C’est un gain spectaculaire, mais qui ne se verra pas forcément à l’usage. Tout dépend de ce que vous faites avec Docker et l’un des développeurs de MacGeneration qui passe ses journées dans des conteneurs n’a noté aucune différence significative sur son MacBook Pro avec puce M1 Pro. Pour pouvoir exploiter les performances en progrès, il faut travailler avec de grosses quantités de données à échanger entre la machine virtuelle et macOS.

Docker donne sur son blog quelques benchmarks pour donner une idée des gains à espérer dans ces cas de figure. Ainsi, l’import d’une base de données MySQL de 284 Mo nécessitait plus de trois minutes avec la version précédente, la même opération prend moins de vingt secondes avec la mise à jour. Dans un autre genre, l’installation de dépendances avec Composer au sein d’un gros projet PHP est passé de quasiment une minute trente à une dizaine de secondes seulement.

Si cette nouveauté n’est pas activée par défaut, c’est qu’elle peut aussi poser problème et bloquer certains conteneurs. Un bug lié aux permissions est notamment connu de Docker et sera corrigé ultérieurement. Les développeurs qui croisent des problèmes sont invités à se manifester sur cette issue GitHub.

avatar Derw | 

« Pour pouvoir exploiter les performances en progrès, il faut travailler avec de grosses quantités de données à échanger entre la machine virtuelle et macOS. »

Yes ! C’est mon cas !

avatar RonDex | 

Petite question… Quel est l’intérêt d’utiliser de Docker sur Mac ? Je l’utilise pour quelques conteneurs sur mon NAS (je suis totalement novice, pas encore eu le temps de regarder de plus près). Mais j’ai du mal à voir un intérêt sur Mac ? 🤷‍♂️
Des exemples ?

avatar sailor29 | 

@RonDex

Les développeurs l’utilisent pour développer par exemple.

Mais bon c’est pas la mise à jour tant attendue, docker desktop restera un veau sur m1 malgré tout

avatar Derw | 

@sailor29

Docker est un veau sur mon MBP Intel et j’espère que cette mise à jour va améliorer les choses pour mon usage (téléchargement de lourdes bases de données postgresql pour un serveur local). Par contre, j’envisage de changer de MBP pour un M1 cet été et votre phrase ne me rassure pas… c’est vraiment pire sur M1 ?

avatar BtQuentin | 

Aucunes craintes à avoir. Je suis sur MacBook Air M1 depuis plus d'un an, et docker tourne parfaitement (il y avait des soucis au tout début, qui ont été corrigés depuis). Mais ce n'est pas lent du tout, au contraire il est plutôt rapide en comparaison à du Windows :)

avatar sailor29 | 

Oui j'ai un net downgrade sur M1 via docker desktop, on en avait parlé sur MacG. La seule solution que j'ai trouvé c'est de l'installer via une vm multipass et là c'est nickel.

On notera un autre probleme plus pénible : vous passez sur une machine ARM donc les images doivent étre compatible ARM (ou buildé sur votre machine)

avatar Derw | 

@sailor29

« On notera un autre probleme plus pénible : vous passez sur une machine ARM donc les images doivent étre compatible ARM (ou buildé sur votre machine) »

Ha !

Vu que je me contente de récupérer les images du projet, je n’ai pas la main dessus et je doute que les architectes aient prévu des images compatibles ARM. Cela risque d’être un problème… il va falloir que je vois ça avec eux…

avatar nukeo | 

@RonDex

Aussi, quand tu veux tester un soft Linux, un container qui existe déjà ou même faire un poc vite fait sans sortir une vm, docker sur Mac fait bien le taf :)

(Ou même utiliser des chaîne de compilation faite pour Linux. Parfois, c’est plus "simple" de build depuis un env Linux que depuis osx)

avatar Alex Giannelli | 

@RonDex

Pour reproduire le même environnement qu'un serveur sur ton Mac quand tu veux travailler en local.
Ça simplifie le déploiement en ligne par exemple, en passant par un Git.

avatar Derw | 

@RonDex

Quand tu es dev web et que tu travailles sur de gros projets hébergés sur serveurs Linux, une image Docker permet de fournir à chaque développeur un environnement de développement identique à chacun et très proche de l’environnement de Prod (serveur, base de données…), et ce, quel que soit leur machine. Reste que si ta machine n’est pas un Linux, ça « marchotte »… (c’est beaucoup plus lent, il faut donc svt modifier les timeout, l’environnement qui fonctionne bien sur Linux demandent parfois quelques adaptations sur Mac…)

avatar koko256 | 

@RonDex

La containérisions est utile quelle que soit le système. En général pour des questions de sandboxing et de sécurité mais le plus visible (car plus facile à comprendre), à savoir de faire tourner une autre version de l'OS a moins de raison d'être sur Mac sauf à vouloir essayer de faire croire à un soft qu'il est encore sous Catalina.

CONNEXION UTILISATEUR