Docker创建tomcat容器实例后无法访问(HTTP状态404)
一、场景重现
1. docker拉取tomcat镜像
docker pull tomcat

不指定版本默认拉取的最新的latest版本
2. 查看拉取的镜像
docker images

3. 运行镜生成容器并运行,同时像映射端口
docker run --name tomcat-libai -it -p 9999:8080 -d tomcat
查看运行的容器
docker ps

看到容器正在运行,且端口映射为9999
4. 查看本机ip
ifconfig

如果没安装net-tools会提示安装
sudo apt install net-tools
5. 访问tomcat在本机的映射地址
172.20.10.13:9999
访问时页面是404

二、分析
首先我们拉取镜像的时候没有指定版本,默认为最新的版本tomcat:latest
那么这个版本有什么特别的地方呢
我们都知道tomcat访问界面的index.jsp文件是在webapps目录下的
我们进入容器,查看一下tomcat目录下的webapps文件夹下有什么东西
1. 进入tomcat容器
docker exec -it tomcat-libai /bin/bash
2. 查看当前目录
看到webapps以及webapps.dist两个目录
ls -l

3. 查看webapps目录内容
//进入webapps目录, cd webapps //查看webapps目录内容 ls -l

发现webapps中是空的,这也就是为什么我们访问时界面404的原因
最新版的tomcat的webapps目录内容为空,他的内容都在wenapps.dist中
三、思路
想要解决这个问题有两个方法
1. 修改weapps
将webapps文件夹删除,将webapps.dist目录名称修改为webapps
2. 使用旧版tomcat
8或者9的tomcat版本即可
四、解决
方案一
删除webapps,webapps.dist替换为webapps
在容器内,到tomcat目录下
cd /usr/local/tomcat

1. 删除webapps目录
rm -rf webapps

2. 修改webapps.dist为webapps
mv webapps.dist webapps

3. 再次访问
172.20.10.13:9999

可正常访问,我们也能看到的确是tomcat最新的版本10.0.14
方案二
使用8或者9的tomcat版本
如果在容器内可输入exit退出容器
1. 搜索镜像
在仓库中搜索tomcat9的版本
docker search tomcat9

2. 拉取tomcat9镜像
拉取自己要用的镜像,我这里使用donglsheng/tomcat9_jdk8这个
docker pull donglsheng/tomcat9_jdk8

3. 查看镜像
拉取后查看镜像
docker images

4. 运行镜像生成容器实例
docker run --name tomcat9-libai -it -p 8888:8080 -d oupula/tomcat9_jdk8

5. 查看已运行的容器
docker ps
6. 访问网址
172.20.10.13:8888

可正常访问,tomcat版本为9.0.12
到此这篇关于Docker创建tomcat容器实例后无法访问(HTTP状态404)的文章就介绍到这了,更多相关docker拉取tomcat提示404内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
在Linux Docker中部署RStudio Server实现远程访问的操作
下面介绍在Linux docker中安装RStudio Server并结合cpolar内网穿透工具,实现远程访问,docker方式安装可以避免很多问题,一键安装,如设备没有安装docker,需提前安装docker,对 Docker部署RStudio Server相关知识感兴趣的朋友一起看看吧2023-12-12
docker build运行报错source: not found解决分析
这篇文章主要为大家介绍了docker build运行报错source: not found解决分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-09-09
Docker Compose+Nestjs构建Dapr Redis发布订阅分布式应用
这篇文章主要为大家介绍了Docker Compose+Nestjs构建Dapr Redis发布订阅分布式应用步骤详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-08-08
详解Windows下运用Docker部署Node.js开发环境
这篇文章主要介绍了详解Windows下运用Docker部署Node.js开发环境,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2017-01-01


最新评论