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"]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!