我们在使用docker来部署java程序的时候常常会发现内存占有很大的问题,使用docker stats查询发现java程序占用了7、8百兆的内存。
第一步开启jdk的内存限制
开启内存限制只需要如以下方式运行jar包 :java -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap ...
以下是docker
构建文件Dockerfile
FROM openjdk:8-jre-alpine
ADD docker-limit-memory.jar app.jar
ENTRYPOINT ["java","-XX:+UnlockExperimentalVMOptions","-XX:+UseCGroupMemoryLimitForHeap","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
第二步修改docker-compose.yml
version: "2.3"
services:
docker-limit-memory:
image: docker-limit-memory
container_name: docker-limit-memory
ports:
- 8081:8081
restart: always
logging:
driver: "json-file"
options:
max-size: "10k"
max-file: "10"
mem_limit: 400m