docker运行Tomcat后访问首页报404(详细永久解决步骤)
时间:2022-07-25
本文章向大家介绍docker运行Tomcat后访问首页报404(详细永久解决步骤),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
文章目录
1. 问题描述
使用 docker 运行一个 Tomcat 容器,浏览器访问报404。
2. 解决步骤
2.1 检查防火墙是否开启
检查一下你的防火墙是否打开,若开启的话要先关闭防火墙。
当然这个地方不同的 linux 发行版的命令有所不同。 这里只贴出我常用的 cantos 和 ubuntu 的命令,有使用其他版本 linux 系统的请自行百度。
1.centos 防火墙操作命令 (1)iptables 防火墙
# 查看防火墙状态
service iptables status
# 停止防火墙
service iptables stop
(2)firewalld 防火墙
# 查看firewall服务状态(出现Active:active(running)是启动状态,Active:inactive(dead)是停止状态)
systemctl status firewalld
# 关闭firewall.service服务
systemctl stop firewalld
2.ubuntu防火墙操作命令
# 查看防火墙状态
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 的文件夹即可解决此问题。可以执行如下命令
rm -rf webapps
mv webapps.dist webapps
然后重启 Tomcat 即可。
3. 永久解决该问题
前面已经解决了问题,但是下次再去运行一个新的 Tomcat 的时候还是会出现同样的问题。如何永久解决呢?
可以在上面修改后的基础上使用 docker commit
提交容器副本使之成为一个新的镜像。
docker commit -m=“提交的描述信息” -a=“作者” 容器ID 要创建的目标镜像名:[标签名]
示例:
docker commit -m="修复404" -a="bboy枫亭" c7d6e86c9b8e new_tomcat:1.0
现在我们拥有了一个新的镜像,下次直接运行这个镜像就不会报 404 了。
不信的话,启用刚刚新建的镜像,look!
- 移除 WordPress 后台“外观-主题” 管理功能
- 移除 WordPress 后台插件管理的“编辑”与“停用”功能
- 区域设置 ID (LCID) 表
- jquery 表单事件
- Jexus以.NET(Phalanger)方式支持PHP的网站
- jquery鼠标事件
- Jexus 负载均衡
- 用.NET Framework 2.0创建 Form设计器[翻译]
- jquery事件绑定
- Fontello:免费Web-font 图标大集合(font-face 图标集)
- 通过 wp-config.php 禁止安装、升级或编辑WordPress 主题与插件
- 利用VS2005中的Code Snippets提高开发效率
- 用schemaSpy制作数据库文档
- WordPress 投票插件Post Ratings,可在谷歌搜索显示星级投票(附中文包下载)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- python - 获取网站PR及百度权重
- 详解Android Studio3.5及使用AndroidX的一些坑
- AndroidQ分区存储权限变更及适配的实现
- Gradle的缓存路径修改的四种方法(小结)
- 适配AndroidQ拍照和读取相册图片的实现方法
- 这是我的第一篇文章
- Android自定义View实现五子棋游戏
- AndroidQ(10)黑暗模式适配的实现
- Android仿微信录音功能
- android实现截图并动画消失效果的思路详解
- 位运算判断奇偶数
- Kotlin之在Gradle中无参(no-arg)编译器插件的使用详解
- android实现常驻通知栏遇到的问题及解决办法
- Android仿微信键盘切换效果
- Android实现WIFI和GPRS网络的切换