springboot设置运行内存_docker run容器 设置 jvm 运行springboot 程序

该博客详细介绍了如何在Dockerfile中设置环境变量,并在运行时通过`docker run`命令重置`JAVA_OPTS`来调整JVM内存配置。内容包括了Dockerfile的ENTRYPOINT指令使用,以及如何在容器内查看和验证Java应用的内存设置。同时,还提供了一组推荐的JVM内存分配参数,根据不同的内存大小进行选择。
摘要由CSDN通过智能技术生成

首先dockerfile中需要设置一个变量

比如我Dockerfile内容

FROM openjdk:8-jre-alpine

VOLUME/tmp

ADD *.jar app.jar

ENV TZ=PRC

RUN ln-snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

#设置变量 JAVA_OPTS

ENV JAVA_OPTS=""#这样写会以shell方式执行,会替换变量

ENTRYPOINT java ${JAVA_OPTS}-Djava.security.egd=file:/dev/./urandom -jar /app.jar

#下面这样写法不行,他只是拼接不会识别变量

#ENTRYPOINT ["java","${JAVA_OPTS}","-Djava.security.egd=file:/dev/./urandom","-jar","app.jar"]

EXPOSE 30100

然后

运行docker run命令

意思是运行时通过-e重置覆盖环境变量中JAVA_OPTS参数信息。

docker run  -e  JAVA_OPTS='-Xmx1344M -Xms1344M -Xmn448M -XX:MaxMetaspaceSize=192M -XX:MetaspaceSize=192M'

如下:

sh "docker login -u ${REGISTRY_UID} -p ${REGISTRY_PID} ${REGISTRY_URL}"echo"说明:docker run -p 外部端口:内部端口 -m 上限500m --异常重启 -e参数,这里注入注册中心 --name项目名称 镜像地址"sh"docker run --restart=always -p ${OUT_PORT}:${IN_PORT}"+

"-d -v ${LOG_PATH}:${LOG_PATH}"+

"-m 1000M --memory-swap -1"+

//jvm设置2G内存=============这里是设置内存

"-e JAVA_OPTS='-Xmx1344M -Xms1344M -Xmn448M -XX:MaxMetaspaceSize=192M -XX:MetaspaceSize=192M' "+

//设置外部IP

"-e eureka.instance.ip-address=${nodeIp}"+

//设置外部端口

"-e eureka.instance.non-secure-port=${OUT_PORT}"+

"--add-host=milike${EUREKA_PORT_A}:${EUREKA_HOST_A} --add-host=milike${EUREKA_PORT_B}:${EUREKA_HOST_B} --add-host=milike${EUREKA_PORT_C}:${EUREKA_HOST_C}"+

"--name ${PROJECT_NAME}"+

"$REPOSITORY"echo"发布镜像完成${REPOSITORY}"

最后,在docker容器中,执行

进入容器

docker exec -it 容器ID/名称 /bin/bash

查看java应用,就可以看到

ps -ef | grep java

结果如下:

/myapp # ps -ef|grep java1 root 2:49 java -Xmx1344M -Xms1344M -Xmn448M -XX:MaxMetaspaceSize=192M -XX:MetaspaceSize=192M -Djava.security.egd=file:/dev/./urandom -jar /app.jar466 root 0:00 grep java

另:某位大神给出个比较合理的设置jvm参数。大多数机器都可以采用

分配内存 堆配置推荐

2G-Xmx1344M -Xms1344M -Xmn448M -XX:MaxMetaspaceSize=192M -XX:MetaspaceSize=192M

3G-Xmx2048M -Xms2048M -Xmn768M -XX:MaxMetaspaceSize=256M -XX:MetaspaceSize=256M

4G-Xmx2688M -Xms2688M -Xmn960M -XX:MaxMetaspaceSize=256M -XX:MetaspaceSize=256M

5G-Xmx3392M -Xms3392M -Xmn1216M -XX:MaxMetaspaceSize=512M -XX:MetaspaceSize=512M

6G-Xmx4096M -Xms4096M -Xmn1536M -XX:MaxMetaspaceSize=512M -XX:MetaspaceSize=512M

7G-Xmx4736M -Xms4736M -Xmn1728M -XX:MaxMetaspaceSize=512M -XX:MetaspaceSize=512M

8G-Xmx5440M -Xms5440M -XX:MaxMetaspaceSize=512M -XX:MetaspaceSize=512M

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值