Dockertomcat的设置内存⼤⼩配置⽅式
安装再docker中的tomcat,在下载⼤⽂件或者某些情况下,会出现tomcat的内存溢出等情况,所以需要配置tomcat的内存⼤⼩,docker中的tomcat内存⼤⼩配置有两种⽅式:
⼀、挂载docker中的配置⽂件
通过将docker中tomcat的catalina.sh配置⽂件挂载到宿主机中,然后再catalina.sh配置jvm内存⼤⼩即可。
1、需要重新运⾏⼀个tomcat容器(注意:端⼝和容器名称不能重复)
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下⾯加⼊:
JAVA_OPTS="-server -Xms1024m -Xmx2048m -XX:MaxNewSize=256m -XX:PermSize=128m -XX:MaxPermSize=256m"
-xms 初始化堆内存
-xmx 最⼤堆内存
⼆、直接修改tomcat容器的catalina.sh的配置
可以直接进⼊容器中修改tomcat的catalina.sh的配置⽂件,不过该⽅法不推荐,因为以后再次秀挂⽐较⿇烦,并且不⽅便配置,如果需要重新运⾏容器的时候,不知道容器中的内存⼤⼩的配置
1、进⼊容器
docker exec -it <container_name> /bin/bash
2、到catalina.sh配置⽂件, 并增加配置(第⼀步中增加的配置语句即可)
// 如果没有vi 命令,则需要安装
vi /usr/local/tomcat/bin/catalina.sh
docker进入容器// 退出容器,并重新启动
exit
docker restart <containner_name>
注意:
如果修改Catalina.sh的时候提⽰该⽂件是⼀个只读⽂件或者提⽰没有权限修改,那么则需要以root权限进⼊容器,具体的⽅法
如下
补充:Docker容器中的root权限获取
有⼀些操作是经常需要进⼊到docker容器中操作的,例如突然需要修改某个配置⽂件等,但是修改该⽂件是需要root权限,可以参考下⾯的解决⽅案
通常修改⽂件时会提⽰:read-only file system 或者 Permission denied
1、挂载配置⽂件
在运⾏docker容器时,可以将该配置⽂件复制⼀份到宿主机,然后run的时候,加载-v参数,将宿主机的配置⽂件挂载到docker中即可。
2、以root权限进⼊docker容器
命令:
docker exec -it -u root <container_id> /bin/bash
注意:
执⾏上述命令的前提是,run 容器的时候,加上了这个参数:--privileged=true 否则进⼊到容器中还是提⽰没有权限修改
以上为个⼈经验,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。如有错误或未考虑完全的地⽅,望不吝赐教。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论