METTRE À JOUR:
trouvé beaucoup de questions et discussions sur stackoverflow sur ce sujet. Et bien qu'ils soient marqués comme acceptés, répondus et lancés par des milliers d'utilisateurs, ils ne semblent pas être la bonne réponse ici.
J'ai exécuté un conteneur docker (version 1.13.1, build 092cba3) avec des contraintes de ressources, comme suit:
docker run --privileged -v /sys/fs/cgroup:/sys/fs/cgroup -m 4096M --cpuset-cpus='0' --cpus=1 --cpu-shares=256 -p $IMAGE_NAME
Le système hôte (RHEL 7) possède 4 cœurs et 8 Go de mémoire. En gros, je souhaite limiter la mémoire et le processeur disponibles pour le conteneur. Après avoir lancé le conteneur avec succès, j'ai ouvert le bash et essayé de trouver les informations de limite dans le conteneur. Mais je n'ai pas pu obtenir les informations correctes.
J'ai essayé ceci:
Sudo cat /proc/meminfo
Le résultat est:
Système hôte MemTotal: 8008812 kB MemFree: 7416404 kB MemAvailable: 7537332 kB
Docker Container MemTotal: 8008812 Ko.
De même, je voulais avoir une limite de CPU:
grep -c ^processor /proc/cpuinfo
Le résultat est:
Système hôte 4
Docker Image 4
Il semble que la limite de CPU et de mémoire imposée par le conteneur ne soit pas visible par le conteneur. J'ai aussi essayé d'interroger les informations du groupe de contrôle.
mkdir -p /tmp/memory
mount -n -t cgroup -o memory cgroup /tmp/memory
Ensuite, je regarde dans les fichiers cgroup:
[root@engrlab memory]# cat /tmp/memory/memory.limit_in_bytes
9223372036854771712
Ce nombre est supérieur à la mémoire réelle du système hôte.
Existe-t-il un moyen de vérifier que les contraintes de ressources ont été correctement définies dans le conteneur? Comment trouver les informations sur les contraintes de ressources dans un conteneur? Apprécier toute suggestion.
METTRE À JOUR
C'est la réponse qui fonctionne: https://stackoverflow.com/a/41827812/3209177
Je viens de trouver cette réponse:
Limiter la mémoire sur un conteneur Docker ne fonctionne pas
Je vais essayer cela et revenir avec mon observation.
j'essaie cette commande ce que mon docker héberge-t-il?. /frapper