Limites de ressources

Par défaut, un conteneur peut utiliser toute la mémoire et tout le CPU du serveur. --memory et --cpus le plafonnent, pour qu'un service qui s'emballe ne fasse pas tomber tout le serveur.

Comment ça marche

--memory 512m fixe une limite stricte appliquée par les cgroups du noyau ; --cpus 1.5 plafonne le temps CPU. Dans Compose, utilise mem_limit et cpus, ou deploy.resources.limits. docker stats montre la consommation de chaque conteneur face à sa limite.

Ce qui casse

Une limite inférieure au besoin réel de l'application la fait tuer encore et encore (code 137). Fixe les limites à partir de la consommation mesurée plus une marge, et garde leur somme sous la mémoire du serveur, en laissant de la place au système.

Dans un terminal

docker run -d --name api --memory 512m --cpus 1 orders-api
docker stats --no-stream

Regarde-le casser, puis répare-le

Écris le Dockerfile ou le fichier compose, tape les commandes docker, et regarde un serveur simulé les exécuter à travers redémarrages, mises à jour et trafic. Gratuit pour commencer.