我的理解是Docker容器中的最大Java内存量取决于Docker约束和JVM设置。然而,我在Max Heap Size中看到的唯一更改取决于docker --memory参数。例如,我在这里启动了一个打印Max memory设置的Java程序(openjdk 17):
docker run -it -e JAVA_OPTS="-Xmx1g" --memory 2g javatest
Max Heap Size = maxMemory() = 536870912
同样,更改JAVA_OPTS:
docker run -it -e JAVA_OPTS="-Xmx64mb" --memory 2g javatest
Max Heap Size = maxMemory() = 536870912
停靠文件:
FROM openjdk:17
COPY ./Example.class /tmp
WORKDIR /tmp
ENTRYPOINT ["java","Example"]
有没有其他的环境变量可以用来设置最大内存?
1条答案
按热度按时间67up9zun1#
我认为使它工作的唯一方法是重写你的ENTRYPOINT以包括JAVA_OPTS env变量。