Docker启动Tomcat访问首页报错404

一. 问题背景

操作系统: Linux

情况:使用Linux上的Docker创建Tomcat容器,已经指定了映射端口,但是启动Tomcat容器后,在本地电脑访问tomcat首页,出现404报错,如下:
在这里插入图片描述

参考自:

  1. SpringBoot 入坑(六)Docker 整合 Tomcat 启动&&访问404异常解决
  2. Docker方式启动tomcat,访问首页出现404错误

二. 报错的原因

因为配置了阿里云的Docker加速下载,所以下载下来后,创建的Tomcat容器中的webapps目录中,没有资源,所以会报404错误。而所需的资源是在webapps.dist中。

三. 解决方案

首先查看当前出现问题的Tomcat容器,使用docker ps,如下:
在这里插入图片描述

使用docker exec -it 出现问题的容器ID /bin/bash进入tomcat容器,如下:
在这里插入图片描述
输入ls -l,如下:
在这里插入图片描述
输入cd webapps,里面确实没有tomcat首页所需要的资源,如下
在这里插入图片描述
输入cd ../,再输入cd webapps.dist,里面确实有tomcat首页所需要的资源,如下:

在这里插入图片描述
在这里插入图片描述
使用cd ../返回上层目录,使用rm -rf webapps删除webapps目录,使用mv webapps.dist webapps将webapps.dist改成webapps即可,如下:
在这里插入图片描述
到这里就可以访问成功了,但是这只是暂时性的解决了问题,如果用出现问题的这个tomcat容器的镜像,再创建出几个tomcat容器,这些新的tomcat容器仍是会访问不到首页会报404。要彻底解决这个问题就要将修改配置后的tomcat容器打包成一个镜像,到时候直接使用这个配置好的镜像就不会有404问题。

继续下面的步骤:

看不懂下图的话,可以跳过这个图:
在这里插入图片描述
如果用的是XShell,或者其他客户端,可以不使用上面的ctrl+p+q,可以直接创建多个窗口,就直接进入主机模式了 ,如下:

在这里插入图片描述

然后使用docker ps查看出现问题的那个tomcat容器,然后使用docker commit -a='随意内容' -m='随意内容’ 出现问题的容器ID 全是小写字母的新镜像的名字,如下:
在这里插入图片描述
使用docker images查看刚刚创建的镜像,如下:
在这里插入图片描述
使用docker run -d -p 8888:8080 新镜像的ID用刚刚自定义的镜像创建新的tomcat容器,如下:
在这里插入图片描述
使用docker rm 出现问题的容器ID删除有问题的容器,如下:
在这里插入图片描述
到此已经从本质上解决访问tomcat容器首页报错。

有问题的伙伴可留言。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值