前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >docker运行Tomcat后访问首页报404(详细永久解决步骤)

docker运行Tomcat后访问首页报404(详细永久解决步骤)

作者头像
bboy枫亭
发布2020-09-24 15:19:26
4.7K1
发布2020-09-24 15:19:26
举报
文章被收录于专栏:csdn_blogcsdn_blog

文章目录

1. 问题描述

使用 docker 运行一个 Tomcat 容器,浏览器访问报404。

在这里插入图片描述
在这里插入图片描述

2. 解决步骤

2.1 检查防火墙是否开启

检查一下你的防火墙是否打开,若开启的话要先关闭防火墙。

当然这个地方不同的 linux 发行版的命令有所不同。 这里只贴出我常用的 cantos 和 ubuntu 的命令,有使用其他版本 linux 系统的请自行百度。

1.centos 防火墙操作命令 (1)iptables 防火墙

代码语言:javascript
复制
# 查看防火墙状态
service iptables status
# 停止防火墙
service iptables stop

(2)firewalld 防火墙

代码语言:javascript
复制
# 查看firewall服务状态(出现Active:active(running)是启动状态,Active:inactive(dead)是停止状态)
systemctl status firewalld

# 关闭firewall.service服务
systemctl stop firewalld

2.ubuntu防火墙操作命令

代码语言:javascript
复制
# 查看防火墙状态
sudo ufw status
# 默认允许外部访问本机
sudo ufw default allow
# 默认拒绝外部访问主机
sudo ufw default deny
# 关闭防火墙
sudo ufw disable

2.2 合并 webapps.dist 和 webapps

若防火墙关闭依然404,那么请打开该容器的命令行进行操作

在这里插入图片描述
在这里插入图片描述

可以看到 tomcat 下面有 webapps 和 webapps.dist 两个文件夹,ls -l 发现 webapps 下面没有东西,然后 webapps.dist 有大家熟悉的几个文件夹,这样的话,问题就显而易见了。

所以只需将 webapps 和 webapps.dist 两个文件夹合并为一个名字为 webapps 的文件夹即可解决此问题。可以执行如下命令

代码语言:javascript
复制
rm -rf webapps
mv webapps.dist webapps

然后重启 Tomcat 即可。

在这里插入图片描述
在这里插入图片描述

3. 永久解决该问题

前面已经解决了问题,但是下次再去运行一个新的 Tomcat 的时候还是会出现同样的问题。如何永久解决呢?

可以在上面修改后的基础上使用 docker commit 提交容器副本使之成为一个新的镜像。

代码语言:javascript
复制
docker commit -m=“提交的描述信息” -a=“作者” 容器ID 要创建的目标镜像名:[标签名]

示例:

代码语言:javascript
复制
docker commit -m="修复404" -a="bboy枫亭" c7d6e86c9b8e new_tomcat:1.0
在这里插入图片描述
在这里插入图片描述

现在我们拥有了一个新的镜像,下次直接运行这个镜像就不会报 404 了。

不信的话,启用刚刚新建的镜像,look!

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-09-22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 1. 问题描述
  • 2. 解决步骤
    • 2.1 检查防火墙是否开启
      • 2.2 合并 webapps.dist 和 webapps
      • 3. 永久解决该问题
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档