docker创建taomcat8容器并解决tomcat日志时区、开启war发布问题

本文介绍了如何使用Docker拉取并运行Tomcat 8.5.66镜像,设置容器内时区为Asia/Shanghai,以及通过tzselect工具进行时区确认。同时,文章详细讲解了在Tomcat的catalina.sh中配置时区的方法,以及通过修改tomcat-users.xml文件启用管理角色,以支持manager应用的War文件发布。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

拉取镜像

docker pull tomcat:8.5.66

运行

docker run --name Tomcat8 -p 8089:8080 -e TZ="Asia/Shanghai" \
--add-host=master:192.168.99.100 -d tomcat:8.5.66 

//hosts增加域名映射IP
--add-host=master:192.168.99.100 

增加这个之后,数据连接配置就可以为  jdbc:mysql://master:3306/xxx?useUnicode=true&characterEncoding=utf-8&……

解决tomcat日志时区问题

方法一:在$Tomcat_HOME/bin/catalina.sh 中添加如下:

export JAVA_OPTS="$JAVA_OPTS -server -Dfile.encoding=UTF-8 -Duser.timezone=GMT+08"

方法二:使用tzselect进行进行修改

# tzselect
 1) Africa
 2) Americas
 3) Antarctica
 4) Arctic Ocean
 5) Asia
 6) Atlantic Ocean
 7) Australia
 8) Europe
 9) Indian Ocean
10) Pacific Ocean
11) none - I want to specify the time zone using the Posix TZ format.

选择5

Please select a country.
 1) Afghanistan           18) Israel                35) Palestine
 2) Armenia               19) Japan                 36) Philippines
 3) Azerbaijan            20) Jordan                37) Qatar
 4) Bahrain               21) Kazakhstan            38) Russia
 5) Bangladesh            22) Korea (North)         39) Saudi Arabia
 6) Bhutan                23) Korea (South)         40) Singapore
 7) Brunei                24) Kuwait                41) Sri Lanka
 8) Cambodia              25) Kyrgyzstan            42) Syria
 9) China                 26) Laos                  43) Taiwan
10) Cyprus                27) Lebanon               44) Tajikistan
11) East Timor            28) Macau                 45) Thailand
12) Georgia               29) Malaysia              46) Turkmenistan
13) Hong Kong             30) Mongolia              47) United Arab Emirates
14) India                 31) Myanmar (Burma)       48) Uzbekistan
15) Indonesia             32) Nepal                 49) Vietnam
16) Iran                  33) Oman                  50) Yemen
17) Iraq                  34) Pakistan

选择9

Please select one of the following time zone regions.
1) Beijing Time
2) Xinjiang Time

选择1

The following information has been given:

        China
        Beijing Time

Therefore TZ='Asia/Shanghai' will be used.
Local time is now:      Mon Jul 22 15:55:01 CST 2019.
Universal Time is now:  Mon Jul 22 07:55:01 UTC 2019.
Is the above information OK?
1) Yes
2) No

选择1

# cp /etc/timezone /etc/timezone.bak

cat > /etc/timezone << EOF

Asia/Shanghai

EOF

将之前的catalina.sh脚本注释掉,最后启动Tomcat,时区也是正常的

支持请求manager发布War

vim /usr/local/tomcat/conf/tomcat-users.xml
//修改内容
	  <role rolename="manager-gui"/>
	  <role rolename="manager-script"/>
	  <role rolename="manager-jmx"/>
	  <role rolename="manager-status"/>
	  <user username="admin" password="admin" roles="manager-gui,manager-script,manager-jmx,manager-status"/>
### 创建启动 Tomcat 容器 为了创建启动一个带有 JRE 1.8 环境的 Tomcat 9 容器,可以使用如下命令: ```bash docker run --name=tomcat -d -p 8080:8080 -v /mydata/tomcat/webapps:/usr/local/tomcat/webapps tomcat:9 ``` 这条命令会拉取官方的 `tomcat:9` 镜像,以守护进程模式运行容器。端口映射 `-p 8080:8080` 将宿主机的 8080 端口绑定到容器内的相应端口上;卷挂载选项 `-v /mydata/tomcat/webapps:/usr/local/tomcat/webapps` 则允许将本地 `/mydata/tomcat/webapps` 文件夹中的 WAR 包部署至 Tomcat 中[^2]。 如果希望容器能够随着 Docker 主机重启而自动恢复,则可以在原有基础上增加 `--restart=always` 参数来设置自启策略: ```bash docker run --name=tomcat -d -p 8080:8080 --restart=always -v /mydata/tomcat/webapps:/usr/local/tomcat/webapps tomcat:9 ``` 对于那些想要进入正在运行的 Tomcat 容器内部执行更多操作的情况,比如查看日志或调整配置文件,可以通过下面这个指令实现交互式的 shell 访问: ```bash docker exec -it <container_id> /bin/bash ``` 这里 `<container_id>` 是指代目标容器唯一标识符的部分字符串或是完整的 ID 号码。一旦进入了容器内层的操作系统环境之后,就能进一步导航到 `$CATALINA_HOME` 即 `/usr/local/tomcat` 下面去管理 Web 应用了[^1]。 需要注意的是,在某些情况下可能会遇到由于路径或其他因素引起的无法正常启动的问题。此时应当检查所使用的脚本以及资源位置是否正确无误,确保所有依赖项都已妥善安置于预期的位置之中[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值