Comment résoudre les goulots d'étranglement des ressources de Docker Desktop sur MacBook
22 जून 2026
0
Computing/SoftwareComments (0)
Log in to leave a comment
No posts yet
Log in to leave a comment
No posts yet
Docker Desktop accapare la moitié de la mémoire physique dès son exécution. En raison d'une erreur dans le framework de virtualisation, la mémoire n'est pas récupérée même après l'arrêt des conteneurs. Si le noyau macOS commence à utiliser le swap disque, même avec Apple Silicon, les goulots d'étranglement I/O sont inévitables. L'erreur “Exit Code 137”, qui provoque l'arrêt inopiné des conteneurs lors de l'exécution d'applications basées sur la JVM, ne se résout pas uniquement en ajustant la taille du tas (heap size).
Calculez et saisissez manuellement les limites de mémoire pour chaque service. La limite globale se calcule selon la formule suivante :
Utilisez le script ci-dessous pour contrôler les variables d'environnement et éviter les temps d'arrêt des services locaux :
sysctl -n hw.memsize..env comme ceci : BACKEND_MEM_LIMIT=1536M.Les incohérences d'autorisations entre APFS de macOS et les conteneurs Linux sont une source courante d'erreurs de build. Selon les benchmarks DDEV, l'utilisation de VirtioFS au lieu du gRPC FUSE traditionnel, combinée à la synchronisation Mutagen dans un environnement Colima, réduit le temps d'installation de Drupal de 102 à 27 secondes, soit une amélioration de 73 %.
Pour réduire les goulots d'étranglement, appliquez les réglages suivants :
sudo diskutil apfs changeOwnerSharing /Volumes/ExternalSSD-Dev enable.develop.watch.sync du fichier docker-compose.yml, excluez les chemins lourds comme node_modules de la synchronisation.--mount-inotify pour adapter les signaux FSEvents au noyau Linux.Une fois cette configuration terminée, la latence lors des modifications de code sera réduite à un niveau proche de la vitesse native du périphérique physique (environ 95 %).
L'utilisation combinée de plusieurs runtimes de virtualisation entraîne des conflits dans les chemins des sockets Docker. Comme le framework de conteneurs Apple configure les micro-VM de manière indépendante, la gestion du réseau devient complexe.
Pour éviter les conflits de ports, utilisez un script d'ajustement réseau automatique :
lsof -i -P -n..env et lancez le conteneur.Lorsque les conteneurs sont supprimés, les fichiers de base de données disparaissent également. Liez vos volumes à un chemin spécifique sur le disque physique, tel que /Volumes/ExternalSSD-Dev/DockerData/volumes/pg_data_core/.
Pour assurer la résilience de la restauration des données, suivez ces étapes :
docker compose exec et compressez-les avec gzip.gunzip -c.read dans votre script pour forcer une procédure d'approbation avant l'exécution de la restauration.En utilisant cette méthode, vous pouvez revenir à un état normal en moins de 5 secondes, même après l'insertion de données de test erronées.