Как установить ограничение памяти для Java 11 внутри Docker?

#docker #dockerfile #containers #production-environment #java-11

#docker #dockerfile #контейнеры #производственная среда #java-11

Вопрос:

Каков процесс установки ограничения памяти для Java 11 внутри Docker?

Какой JDK использовать для производственной среды?

Спасибо

Ответ №1:

  1. Поскольку java 11 (10 ) может автоматически определять память контейнера, вы можете установить ограничение памяти для вашего контейнера, и оно должно быть:
 docker run -m 512 .... 
  
  1. Что касается выбора JDK, вы можете использовать либо лицензированный oracle JDK, либо OpenJDK с открытым исходным кодом.

Подробнее в этой статье: https://www.docker.com/blog/improved-docker-container-integration-with-java-10 /

Комментарии:

1. спасибо за ваше предложение, я хотел бы знать, как java 11 (10 ) может автоматически определять память контейнера? Спасибо

2. В принципе, любая программа может запрашивать группы, в которых они работают, и определять, какой у нее лимит памяти. Обычно он монтируется под: /sys/fs/cgroup . дополнительная информация man 7 cgroups

Ответ №2:

Вы можете установить максимальный размер кучи, используя -Xmx опцию hotspot JVM (см. Параметры java 11)

Вы можете использовать AdoptOpenJDK для производства, поскольку они обновляются.