解决docker内tomcat容器启动成功后,无法访问tomcat页面(404)问题

本文介绍了解决Tomcat Docker容器中404错误的方法,包括如何正确配置webapps目录,以及推荐使用特定版本的Tomcat镜像来避免频繁的手动配置。

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

如题,首先 tomcat镜像存在,并且外部映射启动成功,

通过 docker ps也可以查看到正在运行

 

但是当我访问 虚拟机ip:8888 时页面提示未找到

后来在虚拟机内部访问发现也是404,

OK 查找原因

通过 docker exec -it 容器id(即已启动的tomcat容器id) /bin/bash 命令进入容器内部,

然后输入ls 查看

然后再输入 ls webapps 命令,查看webapps文件夹

查了次发现webapps文件夹下为空,怪不得tomcat 404找不到

下面把webapps这个空文件夹删除,把webapps.dist当做新的webapps文件

命令是 rm -rf webapps  强制删除

然后输入 mv webapps.dist webapps  把webapps.dist文件 当做新的webapps文件,

然后依次输入ls  和ls webapps查看新的webapps文件下是否有东西

这时 输入exit命令退出该目录,输入 docker ps 查看一下正在运行的容器

重新访问 主机ip:8888

成功!!

但是!! 但是!!

但是我发现当我另外起一个端口 即执行docker run -d -p 8889:8080 tomcat命令时

访问主机ip:8889 又会出现404的状况,也就是说 我们又得执行上述操作才能正常访问,

这样实在太麻烦了,最后找到一个一劳永逸的方法====> 更换tomcat镜像版本,

记住一定要tomcat 8.0.52版本!!!记住一定要tomcat 8.0.52版本!!!记住一定要tomcat 8.0.52版本!!!

这时再把容器运行起来,然后就可以直接访问

Docker容器启动Tomcat后,虚拟机无法访问Tomcat可能是由于以下几个原因: 1. **端口映射问题**: - 确保在启动Docker容器时,已经正确地将Tomcat的端口映射到宿主机的端口。例如,使用`-p`参数将容器的8080端口映射到宿主机的8080端口: ```bash docker run -d -p 8080:8080 tomcat ``` 2. **防火墙设置**: - 检查宿主机的防火墙设置,确保允许访问映射的端口。例如,如果使用的是Linux,可以使用`ufw`命令开放端口: ```bash sudo ufw allow 8080 ``` 3. **Tomcat配置**: - 检查Tomcat的配置文件(`server.xml`),确保Tomcat绑定的IP地址允许外部访问。通常,Tomcat默认绑定到所有网络接口(`0.0.0.0`),但如果配置为仅绑定到`localhost`,则外部无法访问。 4. **容器网络模式**: - 确保Docker容器的网络模式设置正确。如果使用了自定义网络模式,确保网络配置允许外部访问。 5. **宿主机IP访问**: - 在虚拟机中,使用宿主机的IP地址而不是`localhost`或`127.0.0.1`来访问Tomcat。例如,如果宿主机的IP地址是`192.168.1.100`,则在浏览器中访问`http://192.168.1.100:8080`。 6. **Docker网络**: - 检查Docker的网络配置,确保容器网络允许外部访问。可以使用以下命令查看Docker网络: ```bash docker network ls docker network inspect <network_name> ``` 通过以上步骤,可以逐步排查并解决Docker容器Tomcat无法访问问题
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值