这个选项在 Docker 文件中是用来做什么的?
ENTRYPOINT java -XX:+UseContainerSupport $JAVA_OPTIONS -jar /myapp.jar
不加这个参数Docker容器会启动吗?
我查看了一篇文章,它说:启用内存支持,但对我来说仍不清楚。docker run **-m 1gb** openjdk:8u131 java -XshowSettings:vm -version
Max. Heap Size (Estimated): 1.68G
docker run **-m 1g** openjdk:8u191-jre-alpine java -XshowSettings:vm -version
Max. Heap Size (Estimated): 247.50M
我写这篇文章的时候,openjdk:8镜像的最新版本是222,所以你可以使用这个版本。它包含了这个功能。
更多信息请参考:
Java 10中解释了这个标志的使用方法:https://medium.com/adorsys/jvm-memory-settings-in-a-container-environment-64b0840e1d9e
在Java 8中使用这个标志:https://blog.softwaremill.com/docker-support-in-new-java-8-finally-fd595df0ca54
可以的。容器将会在没有-XX:+UseContainerSupport
选项的情况下启动。
-XX:+UseContainerSupport
用于分配更大比例的内存。
为了防止JVM在容器中运行时调整最大堆大小,请设置-XX:-UseContainerSupport
选项。
此外,https://www.eclipse.org/openj9/docs/xxusecontainersupport/可能会有所帮助。