内存限制
-m,限制内存大小。 eg:
-m 2048m
cpu限制
--cpus,限制cpu相对个数。eg:
--cpus=1.5
docker-compose
version: '3.7'
services:
my-service:
image: my-app:tag
environment:
JAVA_OPTS: "-server -XX:+UseContainerSupport"
deploy:
resources:
limits:
cpus: "2.0"
memory: "2048M"
启动时需要加上--compatibility
参数:
docker-compose --compatibility up -d
JVM
施加了内存限制的docker容器不适合使用-Xmx
限制堆内存,原因是JVM的内存不只有堆内存,限制多少不好估算,不限制又仅能使用容器内存的1/4.
正确的配置方式如下:
- jdk1.8
-XX:+UseCGroupMemoryLimitForHeap
- jdk11以上
-XX:+UseContainerSupport
应用Dockerfile修改
启动java进程时读取环境变量JAVA_OPTS以获取自定义jvm参数:
FROM openjdk:17
COPY build/libs/app.jar /app.jar
ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar /app.jar"]
标签:限制,--,app,配置,jar,内存,docker
From: https://www.cnblogs.com/cheap-cabbage/p/18259876