Docker tomcat的設置內存大小配置方式

安裝再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
// 退出容器,並重新啟動
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 否則進入到容器中還是提示沒有權限修改

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。