E-NO
DevOps 10 min de lecture

Optimisation des performances de Docker Desktop : guide pratique

calendar_today Publié : 2026-09-04
update Dernière mise à jour : 2026-09-04
analytics Efficacité SEO : 100%
Illustration du guide technique pour « Optimisation des performances de Docker Desktop : guide pratique ».

Apprenez à diagnostiquer et corriger les goulots d'étranglement de Docker Desktop sur macOS et Windows. Ce guide couvre l'allocation des ressources, l'optimisation des entrées-sorties disque, la latence réseau et les flux de travail d'optimisation sûrs avec des commandes concrètes et les sorties attendues.

---

Introduction

Docker Desktop est devenu le moyen par défaut pour de nombreux développeurs d'exécuter des conteneurs sur macOS et Windows. Il regroupe une machine virtuelle Linux légère, un démon de gestion et une interface graphique conviviale, mais cette commodité peut avoir un coût : partage de fichiers lent, utilisation élevée du processeur et démarrage lent des conteneurs. Ces problèmes sont rarement causés par les conteneurs eux-mêmes ; ils proviennent généralement de la manière dont Docker Desktop est configuré pour votre machine et votre charge de travail.

Ce guide propose une approche systématique pour optimiser Docker Desktop afin d'en améliorer les performances. Vous apprendrez à inventorier votre environnement, à ajuster les limites de ressources, à optimiser les paramètres de disque et de réseau, et à vérifier les résultats avec des métriques concrètes. Les étapes sont pratiques et réversibles, ce qui vous permet d'expérimenter en toute sécurité.

---

Inventaire de la version et de l'environnement

Avant de modifier un quelconque paramètre, enregistrez votre version actuelle de Docker Desktop, les détails du système d'exploitation et les spécifications matérielles. Cette base de référence vous aidera à suivre les améliorations et à revenir en arrière si nécessaire.

Prérequis

  • Docker Desktop 4.10 ou version ultérieure (exécutez docker version pour vérifier)
  • macOS 11+ ou Windows 10/11 avec le backend WSL2 activé
  • Au moins 8 Go de RAM, mais 16 Go recommandés pour un travail multi-conteneurs
  • Privilèges administratifs pour modifier les paramètres de Docker Desktop

Vérifiez les versions de Docker et du système d'exploitation

Exécutez la commande suivante pour obtenir la version du serveur Docker :

docker version --format '{{.Server.Version}}'

Sortie attendue :

24.0.5

Sur macOS, vérifiez que le framework Hypervisor est disponible :

sysctl kern.hv_support

Sortie attendue si Hypervisor.framework est disponible :

kern.hv_support: 1

Sur Windows, vérifiez l'état de WSL2 :

wsl --status

Sortie attendue montrant la version par défaut comme étant 2 :

Default Version: 2

Comprendre l'allocation actuelle des ressources

Docker Desktop réserve du CPU et de la mémoire pour sa machine virtuelle. Dans l'interface graphique, accédez à Settings > Resources. Notez les curseurs pour les processeurs, la mémoire, le swap et la taille de l'image disque. Enregistrez également l'emplacement de l'image disque et sa taille actuelle :

du -sh ~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw # macOS

Pour Windows avec WSL2, listez les distributions :

wsl --list --verbose

Sortie attendue montrant la distribution docker-desktop-data :

  NAME                   STATE           VERSION
* docker-desktop         Running         2
  docker-desktop-data    Running         2

Identifiez votre charge de travail

Exécutez-vous une base de données, un serveur web, un outil de build ou un mélange ? Utilisez docker stats pour voir l'utilisation des ressources en direct :

docker stats --no-stream

Extrait de sortie attendue :

CONTAINER ID   NAME    CPU %     MEM USAGE / LIMIT     MEM %     NET I/O       BLOCK I/O
abc123def456   myapp   2.40%     128MiB / 1.945GiB     6.43%     1.2kB / 0B    0B / 0B

Enregistrez les noms des conteneurs et leur utilisation typique du CPU et de la mémoire. Cela vous indique quels conteneurs ont besoin de plus de ressources et lesquels sont inactifs.

---

Chemin de configuration sûr

Les paramètres de Docker Desktop peuvent être modifiés via l'interface graphique ou en éditant le fichier settings.json. Pour la reproductibilité, utilisez la CLI ou modifiez le fichier JSON après avoir quitté Docker Desktop.

Étape 1 : Ajustez le CPU et la mémoire

Commencez par des augmentations modestes. Si votre hôte possède 8 CPU, attribuez-en 4 à Docker. Si vous avez 16 Go de RAM, donnez 8 Go à Docker. Une sur-allocation peut affamer l'hôte et provoquer du swapping.

Exemple : Définir le CPU et la mémoire via le fichier de paramètres (macOS)

  1. Quittez Docker Desktop.
  2. Éditez ~/Library/Group Containers/group.com.docker/settings.json.
  3. Trouvez les clés cpus et memoryMiB et définissez les valeurs :
{
  "cpus": 4,
  "memoryMiB": 8192,
  "swapMiB": 2048
}
  1. Enregistrez et redémarrez Docker Desktop.

Sur Windows, le fichier se trouve à %APPDATA%\Docker\settings.json.

Étape 2 : Optimisez les entrées-sorties disque

Pour les montages bind (partage de répertoires hôte dans les conteneurs), Docker Desktop utilise différentes implémentations de partage de fichiers. Sur macOS, gRPC-FUSE est le défaut mais peut être lent pour de nombreux petits fichiers. Passer à VirtioFS (si disponible) peut améliorer considérablement le débit.

Activer VirtioFS (Docker Desktop 4.6+)

  • Allez dans Settings > General et cochez « Use Virtualization framework » (macOS).
  • Ensuite, allez dans Settings > Experimental Features et activez « Use the new Virtualization framework » et « Enable VirtioFS accelerated directory sharing ».
  • Redémarrez Docker Desktop.

Pour Windows avec WSL2, assurez-vous que vos fichiers de projet sont stockés dans le système de fichiers WSL2 (par exemple, \\wsl$\Ubuntu\home\user\project) plutôt que sur le système de fichiers Windows (C:\Users\...). L'accès aux fichiers Windows depuis WSL2 est lent.

Étape 3 : Ajustez la taille de l'image disque

La VM Docker utilise une image disque dynamique qui croît mais ne rétrécit jamais automatiquement. Si vous voyez no space left on device, augmentez la taille de l'image disque. Le paramètre se trouve sous Settings > Resources > Disk image size.

Étape 4 : Réglage du réseau

Le réseau par défaut de Docker (bridge) ajoute une surcharge NAT. Pour la communication inter-conteneurs, utilisez un réseau bridge défini par l'utilisateur ou le réseau hôte (si approprié).

Créez un réseau défini par l'utilisateur :

docker network create --driver bridge mynet

Sortie attendue :

3f9a2b1c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b

Exécutez les conteneurs avec --network mynet pour contourner le bridge par défaut.

Pour les conteneurs qui doivent exposer des ports à l'hôte, utilisez --publish avec des ports spécifiques au lieu de --publish-all pour réduire la surcharge.

---

Vérification et diagnostics

Après avoir appliqué les modifications, vérifiez que les performances se sont améliorées et que le système reste stable.

Mesurer le temps de démarrage des conteneurs

Utilisez time pour mesurer combien de temps un conteneur met à démarrer et à devenir prêt :

time docker run --rm alpine echo "hello"

Sortie attendue incluant le temps d'exécution :

hello

real    0m3.412s
user    0m0.034s
sys     0m0.020s

Un temps real plus faible indique une réponse plus rapide de la VM.

Benchmark des entrées-sorties disque à l'intérieur d'un conteneur

Exécutez un test simple d'écriture/lecture avec dd :

docker run --rm -v /tmp:/data alpine sh -c "dd if=/dev/zero of=/data/testfile bs=1M count=1000 oflag=direct && dd if=/data/testfile of=/dev/null bs=1M"

Sortie attendue montrant le débit en Mo/s. Comparez avant et après l'activation de VirtioFS.

Vérifiez la pression sur le CPU et la mémoire

Exécutez docker stats pendant que votre charge de travail est active et assurez-vous que l'utilisation du CPU n'atteint pas constamment 100 % et que l'utilisation de la mémoire est bien en dessous de la limite. Sur l'hôte, utilisez Activity Monitor (macOS) ou Task Manager (Windows) pour vous assurer que l'hôte n'effectue pas de swapping.

Tester la latence réseau entre conteneurs

Exécutez deux conteneurs sur le même réseau défini par l'utilisateur et effectuez un ping :

docker run -d --name test1 --network mynet alpine sleep 300
docker run --rm --network mynet alpine ping -c 4 test1

Sortie attendue montrant les temps d'aller-retour ; idéalement sous 1 ms sur le même hôte.

---

Modes de défaillance et récupération

L'optimisation des performances peut parfois causer de l'instabilité. Voici les modes de défaillance courants et comment récupérer.

Sur-allocation de CPU ou de mémoire

Symptôme : L'hôte devient lent, Docker Desktop peut geler, ou les conteneurs sont tués par manque de mémoire (OOM).

Récupération : Réduisez les CPU ou la mémoire alloués dans les paramètres. Si Docker Desktop ne démarre pas, modifiez directement settings.json pendant que Docker est arrêté.

Problèmes avec VirtioFS

Symptôme : Les fichiers ne se synchronisent pas, erreurs comme Too many open files, ou accès aux fichiers lent après activation.

Récupération : Désactivez VirtioFS et revenez à gRPC-FUSE. Consultez les journaux de Docker Desktop : ~/Library/Containers/com.docker.docker/Data/log/host/ sur macOS.

Image disque pleine

Symptôme : Erreurs no space left on device dans les conteneurs.

Récupération : Augmentez la taille de l'image disque via les paramètres. Pour récupérer de l'espace à partir d'images/conteneurs supprimés, exécutez :

docker system prune -a --volumes

Cela supprime toutes les données inutilisées. À utiliser avec précaution.

Mauvaise configuration réseau

Symptôme : Les conteneurs ne peuvent pas communiquer après la création de réseaux personnalisés ou le changement de DNS.

Récupération : Supprimez le réseau personnalisé et utilisez le bridge par défaut pour tester. Assurez-vous que les paramètres DNS dans Docker Desktop sont définis sur automatique ou des IP internes valides.

Plan de retour en arrière

Conservez toujours une sauvegarde du fichier settings.json original avant de le modifier. Si Docker Desktop ne démarre pas, vous pouvez restaurer la sauvegarde et redémarrer.

---

Liste de contrôle opérationnelle

Utilisez cette liste pour établir un processus d'optimisation des performances reproductible.

  • [ ] Enregistrer la ligne de base : version de Docker, système d'exploitation, spécifications matérielles et paramètres de ressources actuels.
  • [ ] Identifier les 3 principaux points douloureux de performance (par exemple, synchronisation de fichiers lente, CPU élevé, builds lents).
  • [ ] Modifier un paramètre à la fois et tester après chaque changement.
  • [ ] Benchmark avant et après en utilisant les méthodes de la section Vérification et diagnostics.
  • [ ] Surveiller l'utilisation des ressources de l'hôte pendant les tests pour éviter la sur-allocation.
  • [ ] Documenter les modifications et les résultats dans un journal partagé.
  • [ ] Planifier des revues périodiques (par exemple, mensuelles) pour ajuster les paramètres à mesure que les charges de travail changent.
  • [ ] Maintenir Docker Desktop à jour pour bénéficier des améliorations de performance.
  • [ ] Utiliser .dockerignore pour réduire la taille du contexte des builds.
  • [ ] Optimiser la mise en cache des couches du Dockerfile pour accélérer les builds d'images.

---

Conclusion

L'optimisation des performances de Docker Desktop est un processus itératif. Commencez par un inventaire clair de votre environnement et de votre charge de travail, apportez une modification à la fois et vérifiez avec des métriques concrètes. En ajustant le CPU et la mémoire, en optimisant le partage de fichiers avec VirtioFS sur macOS ou le placement du système de fichiers WSL2 sur Windows, et en utilisant des réseaux personnalisés, vous pouvez améliorer considérablement la réactivité des conteneurs. Gardez la liste de contrôle opérationnelle à portée de main pour une optimisation continue. N'oubliez pas de revenir en arrière sur tout changement qui cause de l'instabilité, et sauvegardez toujours les fichiers de configuration avant de les modifier.

Recherches connexes

Score de qualité de l’article

Utilité pour le lecteur 100%
  • check_circle Guide prêt à lire
  • check_circle Exemples pratiques inclus
  • check_circle URL d’article optimisée pour le SEO