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

在这里插入图片描述
不指定版本默认拉取的最新的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


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/54210.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

华为数通HCIA-ARP(地址解析协议)详细解析

地址解析协议 (ARP) ARP (Address Resolution Protocol)地址解析协议: 根据已知的IP地址解析获得其对应的MAC地址。 ARP(Address Resolution Protocol,地址解析协议)是根据IP地址获取数据链路层地址的一个…

Pytorch深度学习-----神经网络之卷积层用法详解

系列文章目录 PyTorch深度学习——Anaconda和PyTorch安装 Pytorch深度学习-----数据模块Dataset类 Pytorch深度学习------TensorBoard的使用 Pytorch深度学习------Torchvision中Transforms的使用(ToTensor,Normalize,Resize ,Co…

【Github】自动监测 SSL 证书过期的轻量级监控方案 - Domain Admin

在现代的企业网络中,网站安全和可靠性是至关重要的。一个不注意的SSL证书过期可能导致网站出现问题,给公司业务带来严重的影响。针对这个问题,手动检测每个域名和机器的证书状态需要花费大量的时间和精力。为了解决这个问题,我想向…

ava版知识付费平台免费搭建 Spring Cloud+Spring Boot+Mybatis+uniapp+前后端分离实现知识付费平台

提供私有化部署,免费售后,专业技术指导,支持PC、APP、H5、小程序多终端同步,支持二次开发定制,源码交付。 Java版知识付费-轻松拥有知识付费平台 多种直播形式,全面满足直播场景需求 公开课、小班课、独…

运行vue项目显示找不到vue-cli

直接下载ruoyi源码到本地,启动ruoyi-ui的时候报错: 原来是电脑没配置nodejs。 所以先去官网下载nodejs,然后安装完之后,在命令行窗口输入: 显示安装成功。 但还没有结束,还要配置npm的全局模块的存放路径…

Debian/Ubuntu 安装 Chrome 和 Chrome Driver 并使用 selenium 自动化测试

截至目前,Chrome 仍是最好用的浏览器,没有之一。Chrome 不仅是日常使用的利器,通过 Chrome Driver 驱动和 selenium 等工具包,在执行自动任务中也是一绝。相信大家对 selenium 在 Windows 的配置使用已经有所了解了,下…

哔哩哔哩缓存转码|FFmpeg将m4s文件转为mp4|PHP自动批量转码B站视频

window下载安装FFmpeg 打开ffMpeg官网选择window>Windows builds from gyan.dev 打开https://www.gyan.dev/ffmpeg/builds/ 这里是上面提取的下载链接如果过期不能用自己去官网下 配置FFmpeg环境变量 上面下载的FFmpeg是绿色软件,下载解压到你的常用软件安装目…

《水经注地图服务》发布的影像数据如何在OsgEarth中调用

OsgEarth 是一个用于OpenSceneGraph (OSG)的可扩展地形渲染工具包,它是一个开源、高性能、3D 图形工具包。 只需创建一个简单的 XML 文件,将其指向您的图像、高程和矢量数据,将其加载到您最喜欢的 OSG 应用程序中,然后开始&#…

有赞商城无需代码连接美团开店宝的方法

1 使用场景 大部分的商家都会美团开店宝来作为线上店铺运营的营销服务平台,当有用户下单时,商家都希望第一时间知晓用户信息,但经常缺少数据依据,无法构建精确的客户画像,导致很多线索白白流失,难以做出有效…

在windows下安装ruby使用gem

在windows下安装ruby使用gem 1.下载安装ruby环境2.使用gem3.gem换源 1.下载安装ruby环境 ruby下载地址 选择合适的版本进行下载和安装: 在安装的时候,请勾选Add Ruby executables to your PATH这个选项,添加环境变量: 安装Ruby成…

在windows上安装minio

1、下载windows版的minio: https://dl.min.io/server/minio/release/windows-amd64/minio.exe 2、在指定位置创建一个名为minio文件夹,然后再把下载好的文件丢进去: 3、右键打开命令行窗口,然后执行如下命令:(在minio.…

使用vs 2017 C#项目发布

C#项目发布 vs 2017 打包项目源代码 (发布)iis 配置添加ssl 配置 vs 2017 打包项目源代码 (发布) iis 配置 添加ssl 配置 https://help.aliyun.com/zh/ssl-certificate/user-guide/install-ssl-certificates-on-iis-servers

不同语言操作符的优先级

看到标题,可能会心生疑惑: 这么基础且重要的操作,不同语言不应该是一致的吗? 并不一定,比如对于右移运算和加法运算,Go就与其他多数语言表现得不一致: Go: package mainimport "fmt"func main() …

el-select 中加了filterable 点击箭头下拉框回收不去问题

解决方式①:参考连接:(亲测有用)【element-select】添加过滤属性以及change后下拉框异常_element select过滤时,不收起下拉框_Y.哈哈的博客-CSDN博客 1、添加过滤属性后点击下箭头不收起下拉框 2、change通过dialog触发事件后&…

超详细 | 模拟退火算法及其MATLAB实现

模拟退火算法(simulated annealing,SA)是20世纪80年代初期发展起来的一种求解大规模组合优化问题的随机性方法。它以优化问题的求解与物理系统退火过程的相似性为基础,利用Metropolis算法并适当地控制温度的下降过程实现模拟退火,从而达到求解…

【Liux下6818开发板(ARM)】触摸屏

(꒪ꇴ꒪ ),hello我是祐言博客主页:C语言基础,Linux基础,软件配置领域博主🌍快上🚘,一起学习!送给读者的一句鸡汤🤔:集中起来的意志可以击穿顽石!作者水平很有限,如果发现错误&#x…

系统保留分区被误删怎么办?

当您在全新的磁盘上安装Windows时,将在磁盘的开头创建一个名系统保留的分区,大小约为100MB,然后是系统驱动器,然后是其他的驱动器。通常,系统保留分区在Windows 8中为350MB,在Windows 10中为500MB。系统保留…

解决git仓库无效问题

解决fatal: … not valid: is this a git repository?问题 凭证编辑修改成自己的账号密码即可解决

批量复制并重命名文件夹:实现指定目录下文件夹的自动覆盖更新

你是否曾经有过这样的经历,需要对某个文件夹进行更新,却发现它的名字和其他文件夹重复,导致更新后文件混乱?有了批量复制并重命名文件夹的功能,这一切都将成为过去。今天,我们将向您介绍如何使用这项功能&a…

【 Python 全栈开发 - 人工智能篇 - 45 】决策树与随机森林

文章目录 一、概念与原理1.1 决策树1.1.1 概念1.1.2 原理特征选择分割方法 1.1.3 优点与缺点1.1.4 Python常用决策树算法 1.2 随机森林1.2.1 概念1.2.2 原理1.2.3 优点与缺点1.2.4 Python常用随机森林算法 1.3 决策树与随机森林的比较1.3.1 相同之处1.3.2 不同之处 二、决策树算…
最新文章