web-dev-qa-db-fra.com

Puis-je utiliser mem_limit dans docker-compose? et comment?

mem_limit est supporté par docker-compose? Comment puis-je le tester?

J'ai une suite docker-compose.yml

repository:
  image: myregistry/my_nginx_image
  mem_limit: 60m
  volumes:
    - /etc/localtime:/etc/localtime
  ports:
    - "80:80"

Comment puis-je prouver que le conteneur ne dépasse pas 60 Mo de RAM?

J'utilise:

  • docker 1.3.1
  • docker-compose 1.1.0
47
montells

Oui. La limitation de mémoire est prise en charge par docker-compose et la valeur peut être définie comme dans votre exemple avec "m" pour mégaoctets.

Il est possible de vérifier quelle est la limite de mémoire définie pour l'exécution du conteneur Docker à l'aide de la commande "statistiques fixe".

Si votre nom de conteneur est "repository_1", utilisez cette commande:

docker stats repository_1

Le résultat sera le même que celui-ci:

CONTAINER       CPU %    MEM USAGE/LIMIT    MEM %     NET I/O
repository_1    1.93%    4.609 MiB/60 MiB   7.20%     1.832 KiB/648 B
55
maniekq

Selon documentation de figue , simple

mem_limit: 1000000000

devrait suffire. J'imagine que vous devriez supprimer "m" et utiliser des octets au lieu de mégaoctets.

5
noisy

Vous pouvez trouver comment configurer docker pour limiter les ressources (CPU & MEMORY) et comment tester vos restrictions dans ce message écrit l’année dernière: resource-management-in-docker .

0
kikicarbonell