docker资源限制配置

内存限制

-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"]
posted @   伊丽莎白菜  阅读(44)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示