Comment utiliser Docker Desktop sur un MacBook avec Apple Silicon sans ralentissements
Guide pratique pour tirer le meilleur parti de Docker Desktop sur les Mac équipés des puces M1, M2 et M3 : réglages de VirtioFS, Rosetta 2, mémoire, et alternatives comme OrbStack ou Colima lorsque Docker ne suffit plus.

Si vous travaillez avec des conteneurs sur un MacBook Apple Silicon, vous savez déjà que Docker Desktop n’est pas toujours très fluide. Il démarre lentement, consomme beaucoup de RAM, le ventilateur se met en route dès que vous construisez une image un peu volumineuse et, si votre image est linux/amd64, les choses se dégradent encore. Ce guide explique comment rendre Docker Desktop utilisable sur un Mac M1, M2 ou M3, quels réglages modifier, quand accepter que Docker ne soit pas la meilleure option et quelles alternatives valent le détour.
Tout ce qui suit a été testé sous macOS Sequoia 15.1 avec Docker Desktop 4.35 sur un MacBook Pro M3 Pro de 18 Go de RAM et un MacBook Air M2 de 16 Go. Les principes s’appliquent de la même manière au M1.
Pourquoi Docker Desktop est lent sur Apple Silicon
Docker ne fonctionne pas nativement sous macOS. Il ne l’a jamais fait. Docker a besoin d’un noyau Linux, et macOS n’en possède pas. Ce que fait Docker Desktop, c’est lancer une machine virtuelle Linux légère grâce au framework de virtualisation d’Apple (Virtualization.framework sur Apple Silicon) et exécuter le daemon Docker à l’intérieur.
Cela implique deux choses : une couche de virtualisation permanente, et un pont entre votre système de fichiers macOS et celui de la VM. Ce pont a toujours été le principal goulot d’étranglement.
À cela s’ajoutent les images linux/amd64. Votre Mac est en ARM64. Si vous lancez un conteneur x86_64, Docker l’émule via Rosetta 2 ou QEMU. Émuler une architecture complète a un coût : entre 30 % et 60 % de performances perdues selon la charge.
Prérequis
- macOS 13 Ventura ou supérieur (Sequoia recommandé pour un VirtioFS stable).
- Docker Desktop 4.25 ou supérieur. La version 4.35 apporte des améliorations notables dans la gestion des ressources.
- Un Mac équipé d’une puce M1, M2, M3 (ou supérieure) et d’au moins 16 Go de RAM si vous travaillez avec plus de deux conteneurs simultanément.
- Rosetta 2 installé :
softwareupdate --install-rosetta --agree-to-license.
Installer Docker Desktop sur un Mac Apple Silicon
Téléchargez l’installateur Apple Silicon depuis docker.com. Attention : il existe deux versions, celle pour Intel et celle pour Apple Silicon. Si vous téléchargez celle pour Intel par erreur, tout passera par Rosetta et vous perdrez des performances inutilement.
Glissez l’application dans /Applications, ouvrez-la, acceptez les autorisations réseau privilégiées et attendez que la baleine apparaisse dans la barre des menus.
Réglages clés pour que Docker ne ralentisse pas
C’est ici que se joue 80 % de cet article. Voici les réglages qui font réellement la différence.
Activer VirtioFS comme système de fichiers
VirtioFS a remplacé gRPC-FUSE. Il est deux à cinq fois plus rapide en lecture et en écriture sur les volumes montés depuis macOS. Il est désormais la valeur par défaut, mais si vous venez d’une ancienne installation, il se peut que vous utilisiez encore gRPC-FUSE.
Chemin : Docker Desktop → Settings → General → Virtual Machine Options → VirtioFS.
Redémarrez Docker après ce changement. Vous remarquerez la différence sur tout projet Node, PHP ou Python qui monte node_modules ou vendor depuis votre dossier local.
Utiliser le nouveau Virtualization Framework d’Apple
Sur le même écran, cochez Use Virtualization framework (celui d’Apple, pas QEMU). C’est celui qui exploite l’accélération matérielle des puces M.
Juste en dessous, activez Use Rosetta for x86_64/amd64 emulation. Cela remplace l’émulation QEMU par Rosetta 2 lorsque vous exécutez des images amd64. Le gain sur les images x86_64 est spectaculaire : lors de tests avec des conteneurs MySQL 8 amd64, le démarrage passe de 40 secondes à moins de 15.
Ajuster les ressources CPU, mémoire et disque
Chemin : Settings → Resources → Advanced.
Par défaut, Docker Desktop n’alloue qu’une fraction modeste des ressources. Sur un Mac de 16 Go, augmentez la mémoire à 8 Go si vous travaillez avec des bases de données. Sur un Mac de 18 Go ou plus, entre 8 et 10 Go. Ne dépassez pas 50 % de la RAM totale : macOS a besoin de respirer.
CPU : laissez au moins deux cœurs libres pour le système. Sur un M3 Pro à 12 cœurs, vous pouvez allouer 8 cœurs à Docker sans problème.
Disque : le disque virtuel grossit à la demande. Fixez-lui une limite raisonnable (64 Go suffisent généralement) et purgez les anciennes images avec docker system prune -a toutes les deux semaines.
Désactiver les fonctions que vous n’utilisez pas
Dans Settings → General, décochez Send usage statistics, Open Docker Dashboard at startup si vous n’en avez pas besoin, et SBOM indexing si vous n’analysez pas les vulnérabilités. Chacune de ces fonctions consomme des cycles.
Dans Settings → Kubernetes, laissez Kubernetes désactivé sauf si vous l’utilisez réellement. Un cluster K8s local consomme 2 Go de RAM même si vous ne faites rien.
Travailler avec des images ARM64 chaque fois que c’est possible
Le moyen le plus rapide de faire voler Docker sur votre Mac est de ne rien émuler. De nombreuses images officielles disposent déjà de builds linux/arm64 : PostgreSQL, Redis, Nginx, Node, Python, Ruby, Go, la plupart des bases de données modernes.
Vérifiez les architectures disponibles avant de faire un pull :
docker manifest inspect postgres:16 | grep architecture
Si vous voyez arm64, utilisez-la sans forcer la plateforme. Si seule l’image amd64 existe, alors Rosetta est nécessaire.
Pour forcer une plateforme précise :
docker run --platform linux/arm64 postgres:16
docker run --platform linux/amd64 mysql:5.7
Dans votre docker-compose.yml, ajoutez platform: linux/arm64 à chaque service pour éviter les mauvaises surprises.
Quand Rosetta 2 sauve la mise et quand il ne le fait pas
Rosetta 2 fonctionne bien pour les binaires statiques et les applications effectuant des calculs généralistes. Pour les anciennes bases de données, les outils legacy ou les images d’entreprise qui n’existent qu’en amd64, activer Rosetta vous tire d’affaire.
Rosetta reste moins performant sur les charges à forte intensité d’E/S, les anciennes JVM (Java 8 amd64 peut planter) et certains binaires utilisant des appels système exotiques. Si un conteneur amd64 vous donne des erreurs étranges avec Rosetta activé, essayez de le désactiver et de revenir à QEMU uniquement pour ce cas.
Optimiser l’utilisation des volumes
Le montage de dossiers macOS dans le conteneur reste l’opération la plus coûteuse, même avec VirtioFS. Trois règles :
- Ne montez pas
node_modules,vendorou.gitsi vous pouvez l’éviter. Utilisez des volumes nommés Docker pour ces répertoires : ils vivent à l’intérieur de la VM et sont beaucoup plus rapides. - Utilisez
:delegatedou:cachedsur les montages qui n’ont pas besoin d’une cohérence stricte. Avec VirtioFS, l’impact est moindre qu’auparavant, mais il existe encore. - Évitez les surveillances de fichiers massives. Si votre framework recompile à chaque modification d’un fichier, limitez les chemins surveillés.
Exemple de volume nommé pour node_modules :
services:
app:
build: .
volumes:
- .:/app
- node_modules:/app/node_modules
volumes:
node_modules:
Alternatives à Docker Desktop sur Mac
Docker Desktop n’est pas la seule option, et dans certains cas, ce n’est même pas la meilleure. Trois alternatives sérieuses :
OrbStack
OrbStack est ce qui se rapproche le plus de « Docker Desktop mais rapide ». Il consomme moins de RAM (il démarre avec environ 400 Mo contre 1,5 Go pour Docker Desktop), démarre en 2 à 3 secondes et utilise sa propre implémentation de la virtualisation sur Apple Silicon. Compatible avec la CLI Docker sans modification.
Il coûte 8 dollars par mois pour un usage commercial, et il est gratuit pour un usage personnel. Si vous travaillez toute la journée avec des conteneurs, il s’amortit grâce à l’autonomie gagnée sur batterie.
Colima
Colima est gratuit, open source et fonctionne en ligne de commande. Il lance une VM Linux via Lima et expose un socket Docker. Aucune interface graphique.
Installation :
brew install colima docker
colima start --cpu 4 --memory 8 --vm-type vz --vz-rosetta
Le paramètre --vz-rosetta active Rosetta pour amd64. Idéal si vous vivez dans le terminal et ne voulez pas d’une application fonctionnant en permanence.
Podman
Podman est l’approche de Red Hat : sans daemon, sans root, compatible avec la CLI Docker via des alias. Sur Apple Silicon, il fonctionne bien, mais son écosystème d’images et son intégration avec des outils comme docker-compose restent moins aboutis.
C’est une bonne option si vous venez d’environnements RHEL ou si vous voulez vous aligner sur la production Kubernetes/OpenShift.
Commandes utiles pour diagnostiquer les performances
Voir quel conteneur consomme les ressources :
docker stats
Voir la taille réelle des images, conteneurs et volumes :
docker system df
Nettoyer tout ce qui n’est pas utilisé (attention, supprime les images sans conteneur associé) :
docker system prune -a --volumes
Problèmes courants et solutions
Docker Desktop ne démarre pas après la mise à jour de macOS. Redémarrez le service : killall Docker && open /Applications/Docker.app. Si le problème persiste, allez dans Troubleshoot → Reset to factory defaults.
Le ventilateur s’emballe pendant la construction des images. Réduisez le CPU alloué à Docker dans Settings → Resources. Si cela ne suffit pas, vérifiez si votre Dockerfile contient des RUN lançant des processus parallélisés (npm install, cargo build).
Les volumes montés sont extrêmement lents. Vérifiez que VirtioFS est actif et envisagez de déplacer les répertoires lourds vers des volumes nommés.
Un conteneur amd64 ne démarre pas. Vérifiez que Rosetta est installé (arch -x86_64 uname -m devrait renvoyer x86_64). Si l’erreur persiste, ce binaire précis n’est pas compatible avec Rosetta 2 ; utilisez QEMU en désactivant l’option Rosetta.
Docker Desktop consomme 3 Go de RAM au repos. C’est normal sur les anciennes versions. Mettez à jour vers la 4.30 ou supérieure : le gestionnaire de mémoire dynamique rend la RAM au système lorsqu’aucun conteneur n’est actif.
FAQ
Puis-je utiliser Docker Desktop gratuitement dans un cadre professionnel ? Non, si vous travaillez dans une entreprise de plus de 250 employés ou dont le chiffre d’affaires annuel dépasse 10 millions de dollars. Pour un usage personnel, l’éducation et les petites startups, oui. Consultez la licence officielle de Docker.
Vaut-il la peine de passer à OrbStack ? Si vous utilisez des conteneurs au quotidien et que la consommation de Docker Desktop vous gêne, oui. Pour un usage occasionnel, Docker Desktop suffit.
Rosetta 2 émule-t-il parfaitement n’importe quelle image amd64 ? Non. Il couvre la plupart des cas, mais certains binaires très spécifiques (anciennes JVM, outils utilisant des SIMD complexes) peuvent échouer. QEMU reste le plan B.
Peut-on faire tourner Kubernetes sur un Mac M3 sans se heurter à des limites ? Oui, mais il vaut mieux utiliser minikube ou k3d plutôt que le Kubernetes intégré à Docker Desktop. Les deux sont plus légers. Si vous avez besoin d’un environnement de développement complet avec Windows et Linux en même temps, vous pouvez jeter un œil à comment installer Windows 11 ARM sur un Mac M3 avec Parallels Desktop 20.
De combien de RAM ai-je réellement besoin pour travailler confortablement avec Docker ? 16 Go est le minimum raisonnable. 24 Go ou plus si votre stack combine simultanément base de données, backend, frontend et services auxiliaires. Si vous envisagez de changer d’équipement, consultez le comparatif entre MacBook Pro M4 Pro et M4 Max avant de décider.



