Docker中设置Tomcat的内存大小配置

安装在docker中的tomcat,在下载大文件或者某些情况下,会出现tomcat的内存溢出等情况,所以需要配置tomcat的内存大小,docker中的tomcat内存大小配置有两种方式:

一、挂载docker中的配置文件

1
通过将docker中tomcat的catalina.sh配置文件挂载到宿主机中,然后再catalina.sh配置jvm内存大小即可。
  1. 需要重新运行一个tomcat容器(注意: 端口和容器名称不能重复)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    docker run -d \
    -v /server/webapps:/usr/local/tomcat/webapps/ \
    -v /server/catalina.sh:/usr/local/tomcat/bin/catalina.sh \
    -v /server/logs/demo:/server/logs/demo \
    -e TZ="Asia/Shanghai" \
    --privileged=true \
    --name demo \
    -p 8080:8080 \
    tomcat8

说明:

  • -v /server/webapps:/usr/local/tomcat/webapps/ 挂载当前项目的运行目录到tomcat下的webapps
  • -v /server/catalina.sh:/usr/local/tomcat/bin/catalina.sh 挂载宿主机的catalina.sh到docker中tomcat下的catalina.sh
  • -v /server/logs/demo:/server/logs/demo 挂载日志到宿主机中
  • -e TZ=”Asia/Shanghai” 设置时区
  • –privileged=true 设置拥有容器中的真正的root权限
  • -p 8080:8080 映射端口
  • tomcat8 镜像的名称

2 .catalina.sh中的配置内存

cygwin=false下面加入:

1
JAVA_OPTS="-server -Xms1024m -Xmx2048m -XX:MaxNewSize=256m -XX:PermSize=128m -XX:MaxPermSize=256m"

-xms 初始化堆内存
-xmx 最大堆内存

二、直接修改tomcat容器的catalina.sh的配置

1
可以直接进入容器中修改tomcat的catalina.sh的配置文件,不过该方法不推荐,因为以后再次秀挂比较麻烦,并且不方便配置,如果需要重新运行容器的时候,不知道容器中的内存大小的配置

进入容器
docker exec -it <container_name> /bin/bash

找到catalina.sh配置文件, 并增加配置(第一步中增加的配置语句即可)

// 如果没有vi 命令,则需要安装
vi /usr/local/tomcat/bin/catalina.sh
// 退出容器,并重新启动
exit
docker restart <containner_name>

注意: 如果修改Catalina.sh的时候提示该文件是一个只读文件或者提示没有权限修改,那么则需要以root权限进入容器,具体的方法见: Docker容器中的root权限获取

参考资料

分享到