dockerfile启动tomcat,浏览器访问不了问题--总结

对于这个问题,弄了两天,终于被自己坑到了! centos7本机可以访问:curl localhost:8080,浏览器访问不了

检查步骤:

1、检查端口是否开启冲突或者被占用
ss -ntl
[root@7fb3b819d339 /]# ss -ntl   # 容器端口已经开启
State      Recv-Q Send-Q           Local Address:Port     Peer Address:Port
LISTEN     0      1                127.0.0.1:8005          *:*
LISTEN     0      100               *:8080                 *:*

[root@szb ~]# ss -ntl				# 宿主机没有别的服务占用
State      Recv-Q Send-Q           Local Address:Port   Peer Address:Port
LISTEN     0      128              *:8080                *:*
LISTEN     0      128              [::]:8080             [::]:*
2、检查安全组的8080端口是否开放
本人是腾讯云,已经打开8080端口
3、环境变量配置是否有问题
虽然我也配错了,但是不是最终原因,因为java可以启动,很奇妙
vim /etc/profile
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jar
export PATH=$PATH:$JAVA_HOME/bin
4、防火墙限制端口访问
本人就是之前做实验测试的时候没有清理防火墙规则,实际上发现了这个问题,但是没有重启服务,导致清空规则后没生效
iptables -F  # 清空防火墙规则
systemctl restart iptables  # 重启服务,要是没启动过,reboot一下就能清空规则

其余网上描述的问题:

1、是否有其他设置导致你的文件解析错误
可以查看你容器里的cat /etc/resolv.conf,查看容器里的域名服务是否正常,一般是和你宿主机保持一致的

2、检查Tomcat文件webapps和其目录下的root里面是否有内容
[root@7fb3b819d339 tomcat]# ll webapps/ROOT/

一般都是docker直接下载tomcat的容器,会出现webapps目录下为空的情况,直接cp -r webapps.dist/* webapps/ 即可
经验分享 程序员 微信小程序 职场和发展