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

 更新时间:2024年07月11日 09:45:47   作者:寒山李白  
本文主要介绍了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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • docker删除拉取的镜像释放内存的操作方法

    docker删除拉取的镜像释放内存的操作方法

    kali内存满了,释放一下内存,通过查看本地镜像,删除本地镜像,文中给大家介绍了docker image ls详解,对docker删除拉取的镜像释放内存相关知识操作感兴趣的朋友一起看看吧
    2023-01-01
  • 使用Docker迁移服务到离线服务器的过程

    使用Docker迁移服务到离线服务器的过程

    最近遇到的这个场景,需要把之前开发的一套系统迁移到一个离线的服务器上,这个服务器有点麻烦,接入VPN后通过堡垒机才能访问,速度也很慢,遇到不少坑,本文记录一下迁移过程,需要的朋友可以参考下
    2023-06-06
  • docker-compose镜像发布springboot项目的流程分析

    docker-compose镜像发布springboot项目的流程分析

    Docker-Compose项目由Python编写,调用Docker服务提供的API来对容器进行管理。因此,只要所操作的平台支持Docker API,就可以在其上利用Compose来进行编排管理,接下来通过本文给大家介绍docker-compose发布springboot项目的流程分析,一起看看吧
    2021-06-06
  • Kubernetes(k8s)基础介绍

    Kubernetes(k8s)基础介绍

    今天小编就为大家分享一篇关于Kubernetes(k8s)基础介绍,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • 一文详解如何修改Docker的默认存储路径

    一文详解如何修改Docker的默认存储路径

    这篇文章主要介绍了关于如何修改Docker的默认存储路径的相关资料,默认安装的情况下,会使用 /var/lib/docker/ 目录作为存储目录,用以存放拉取的镜像和创建的容器等,这个路径是系统存储目录,一般空间会比较小,需要的朋友可以参考下
    2023-08-08
  • Docker容器host与none网络的使用

    Docker容器host与none网络的使用

    本文主要介绍了Docker容器host与none网络的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧<BR>
    2022-06-06
  • Docker如何保存对容器的修改问题

    Docker如何保存对容器的修改问题

    这篇文章主要介绍了Docker如何保存对容器的修改问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • Docker部署Mysql数据库步骤详解

    Docker部署Mysql数据库步骤详解

    Docker是一种流行的容器化平台,可以简化应用程序的部署和管理,在本博客中,我们将探讨如何使用Docker部署两个广泛使用的数据库:MySQL,我们将提供详细的步骤和相应的命令,以帮助您轻松地在Docker容器中设置和运行这个数据库
    2023-07-07
  • 使用Shell脚本批量启停Docker服务

    使用Shell脚本批量启停Docker服务

    最近日常测试中经常需要手动启动或停止docker,于是决定写一个Shell脚本来代替人工操作,下面小编把我实现过程分享到脚本之家平台,需要的朋友参考下
    2019-11-11
  • 使用 Azure Container Registry 储存镜像的问题

    使用 Azure Container Registry 储存镜像的问题

    Azure Container Registry(容器注册表)是基于 Docker Registry 2.0规范的托管专用 Docker 注册表服务。这篇文章主要介绍了使用 Azure Container Registry 储存镜像,需要的朋友可以参考下
    2021-05-05

最新评论