Docker创建tomcat容器实例后无法访问(HTTP状态 404 - 未找到)

天行健,君子以自强不息;地势坤,君子以厚德载物。


每个人都有惰性,但不断学习是好好生活的根本,共勉!


文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。

Docker创建tomcat容器实例后无法访问

  • 一、场景重现
    • 1. docker拉取tomcat镜像
    • 2. 查看拉取的镜像
    • 3. 运行镜生成容器并运行,同时像映射端口
    • 4. 查看本机ip
    • 5. 访问tomcat在本机的映射地址
  • 二、分析
    • 1. 进入tomcat容器
    • 2. 查看当前目录
    • 3. 查看webapps目录内容
  • 三、思路
    • 1. 修改weapps
    • 2. 使用旧版tomcat
  • 四、解决
    • 方案一
      • 1. 删除webapps目录
      • 2. 修改webapps.dist为webapps
      • 3. 再次访问
    • 方案二
      • 1. 搜索镜像
      • 2. 拉取tomcat9镜像
      • 3. 查看镜像
      • 4. 运行镜像生成容器实例
      • 5. 查看已运行的容器
      • 6. 访问网址


一、场景重现

1. docker拉取tomcat镜像

docker pull tomcat

Docker创建tomcat容器实例后无法访问(HTTP状态 404 - 未找到)_第1张图片
不指定版本默认拉取的最新的latest版本

2. 查看拉取的镜像

docker images

Docker创建tomcat容器实例后无法访问(HTTP状态 404 - 未找到)_第2张图片

3. 运行镜生成容器并运行,同时像映射端口

docker run --name tomcat-libai -it -p 9999:8080 -d tomcat

查看运行的容器

docker ps

在这里插入图片描述
看到容器正在运行,且端口映射为9999

4. 查看本机ip

ifconfig

Docker创建tomcat容器实例后无法访问(HTTP状态 404 - 未找到)_第3张图片
如果没安装net-tools会提示安装

sudo apt install net-tools

5. 访问tomcat在本机的映射地址

172.20.10.13:9999

访问时页面是404
Docker创建tomcat容器实例后无法访问(HTTP状态 404 - 未找到)_第4张图片

二、分析

首先我们拉取镜像的时候没有指定版本,默认为最新的版本tomcat:latest
那么这个版本有什么特别的地方呢
我们都知道tomcat访问界面的index.jsp文件是在webapps目录下的
我们进入容器,查看一下tomcat目录下的webapps文件夹下有什么东西

1. 进入tomcat容器

docker exec -it tomcat-libai /bin/bash

2. 查看当前目录

看到webapps以及webapps.dist两个目录

ls -l

Docker创建tomcat容器实例后无法访问(HTTP状态 404 - 未找到)_第5张图片

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

Docker创建tomcat容器实例后无法访问(HTTP状态 404 - 未找到)_第6张图片

1. 删除webapps目录

rm -rf webapps

Docker创建tomcat容器实例后无法访问(HTTP状态 404 - 未找到)_第7张图片

2. 修改webapps.dist为webapps

mv webapps.dist webapps

Docker创建tomcat容器实例后无法访问(HTTP状态 404 - 未找到)_第8张图片

3. 再次访问

172.20.10.13:9999

Docker创建tomcat容器实例后无法访问(HTTP状态 404 - 未找到)_第9张图片
可正常访问,我们也能看到的确是tomcat最新的版本10.0.14

方案二

使用8或者9的tomcat版本
如果在容器内可输入exit退出容器

1. 搜索镜像

在仓库中搜索tomcat9的版本

docker search tomcat9

Docker创建tomcat容器实例后无法访问(HTTP状态 404 - 未找到)_第10张图片

2. 拉取tomcat9镜像

拉取自己要用的镜像,我这里使用donglsheng/tomcat9_jdk8这个

docker pull donglsheng/tomcat9_jdk8

Docker创建tomcat容器实例后无法访问(HTTP状态 404 - 未找到)_第11张图片

3. 查看镜像

拉取后查看镜像

docker images

Docker创建tomcat容器实例后无法访问(HTTP状态 404 - 未找到)_第12张图片

4. 运行镜像生成容器实例

docker run --name tomcat9-libai -it -p 8888:8080 -d oupula/tomcat9_jdk8

在这里插入图片描述

5. 查看已运行的容器

docker ps

6. 访问网址

172.20.10.13:8888

Docker创建tomcat容器实例后无法访问(HTTP状态 404 - 未找到)_第13张图片

可正常访问,tomcat版本为9.0.12


你可能感兴趣的:(#,Docker,docker,tomcat,http)