Могу ли я использовать mem_limit в сборке докеров? и как?
mem_limit поддерживается docker-compose? Как я могу проверить его?
У меня есть следующий docker-compose.yml
repository:
image: myregistry/my_nginx_image
mem_limit: 60m
volumes:
- /etc/localtime:/etc/localtime
ports:
- "80:80"
Как я могу доказать, что контейнер фактически не превышает 60 мб ОЗУ?
Я использую:
- docker 1.3.1
- docker-compose 1.1.0
Ответы
Ответ 1
Да. Ограничение памяти поддерживается компоновкой docker, и значение может быть установлено как в вашем примере с "m" для мегабайт.
Можно проверить, что такое ограничение памяти, установленное для запуска контейнера Docker, используя команду "docker stats".
Если имя вашего контейнера "repository_1", используйте следующую команду:
docker stats repository_1
Результат этого будет аналогичным этому:
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
Ответ 2
В соответствии с fig documentation, простой
mem_limit: 1000000000
должно быть достаточно. Я думаю, вы должны сбросить "m" и использовать байты вместо мегабайт.
Ответ 3
Вы можете найти, как настроить докер для ограничения ресурсов (CPU и MEMORY) и как проверить свои ограничения в этом сообщении, написанном в прошлом году: resource-management-in-docker.