Docker部署java程序限制內存

我們在使用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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章