centos8上docker tomcat容器访问报404解决方法
目录
【README】
【1】docker安装tomcat
【2】启动多个tomcat容器
【README】
1.本文记录了 访问docker tomcat容器报404的解决方法;
2.附带安装tomcat步骤;
3.centos8 安装docker,refers2 centos8安装docker_PacosonSWJTU的博客-CSDN博客【README】本文参考了 docker官方文档安装指南, Install Docker Engine on CentOS | Docker DocumentationInstructions for installing Docker Engine on CentOShttps://docs.docker.com/engine/install/centos/【1】安装前的工作1.需要centos7或8上;// 查看centos版本[root@centos204 ~]# uname -r4https://blog.csdn.net/PacosonSWJTU/article/details/120773955
【1】docker安装tomcat
步骤1,搜索 docker tomcat 镜像
docker search tomcat
步骤2,拉取tomcat镜像
docker pull tomcat
步骤3,根据镜像启动tomcat容器
虚拟机端口8888转发到 tomcat容器8080端口;
[root@centos204 tomcat]# docker run -d -p 8888:8080 tomcat
0b1be1a3dcd2e9723343a8b3f3f0bcd1f1a07da38b3090d256132d8320e9add2
步骤4,win10浏览器 访问 http://192.168.163.204:8888/ 报404
步骤5,查看防火墙
发现什么都没有,即centos8机器上8888端口无法被防火墙隔离了
# 查看防火墙开通网络访问端口列表
[root@centos204 tomcat]# firewall-cmd --zone=public --list-ports
空
[root@centos204 tomcat]# # 查看防火墙状态
[root@centos204 tomcat]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)Active: active (running) (thawing) since Fri 2021-10-15 01:02:33 EDT; 9h ago
..............................................
步骤6,开通8888端口的防火墙访问权限
# 开通8888端口
[root@centos204 tomcat]# firewall-cmd --zone=public --add-port=8888/tcp --permanent
success
# 查看已开通端口
[root@centos204 tomcat]# firewall-cmd --zone=public --list-ports
空# 重新加载防火墙规则到内存
[root@centos204 tomcat]# firewall-cmd --reload
success
# 再次查看已开通端口, 已开通
[root@centos204 tomcat]# firewall-cmd --zone=public --list-ports
8888/tcp
步骤7,再次访问 http://192.168.163.204:8888/ 还是报404
步骤8,查看tomcat容器部署目录
使用命令: docker exec -it 运行的tomcat容器ID /bin/bash 进入到tomcat的目录
# 查看docker所有容器
[root@centos204 tomcat]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0b1be1a3dcd2 tomcat "catalina.sh run" 13 minutes ago Up 13 minutes 0.0.0.0:8888->8080/tcp, :::8888->8080/tcp modest_heyrovsky
0a5b713c0021 hello-world "/hello" 24 hours ago Exited (0) 24 hours ago frosty_turing# 找出tomcat容器id, 并进入该容器的内存运行目录
[root@centos204 tomcat]# docker exec -it 0b1be1a3dcd2 /bin/bash
root@0b1be1a3dcd2:/usr/local/tomcat# ls
BUILDING.txt CONTRIBUTING.md LICENSE NOTICE README.md RELEASE-NOTES RUNNING.txt bin conf lib logs native-jni-lib temp webapps webapps.dist work# 查看webapps 部署了哪些项目,居然为空
root@0b1be1a3dcd2:/usr/local/tomcat# ls webapps# 再查看webapps.dist 部署了哪些项目 不为空
root@0b1be1a3dcd2:/usr/local/tomcat# ls webapps.dist
ROOT docs examples host-manager manager
很显然, webapps tomcat的部署根目录没有任何内容,所以访问报404; 下面我们 把 webapps.dist 的内容拷贝到 webapps ;
步骤9,把 webapps.dist 的内容拷贝到 webapps
root@0b1be1a3dcd2:/usr/local/tomcat# cp -r webapps.dist/* webapps/
步骤10,再次访问 http://192.168.163.204:8888/; 成功!
注意:我这里只是测试,所以把 webapps.dist 目录中的内容拷贝到了 webapps 下; 也可以不这样做,把虚拟机上的物理磁盘目录挂载到 tomcat容器部署根目录 webapps,也可以实现部署的目的;
【2】启动多个tomcat容器
步骤1,利用tomcat docker镜像启动多个tomat容器
# 利用tomcat镜像启动第2个tomcat容器,外部端口8887
[root@centos204 tomcat]# docker run -d -p 8887:8080 tomcat
e7f01a261ee88d18507142c6a09a1548d2fd6f7586aad7281e2b980fb379f306# 利用tomcat镜像启动第3个tomcat容器,外部端口8886
[root@centos204 tomcat]# docker run -d -p 8886:8080 tomcat
99e3813639c8defd220950a57cf6a5e744677db407b0dd53832144b9c3a5878c
[root@centos204 tomcat]#
步骤2,按照管理,开通8887 8886 防火墙权限
[root@centos204 tomcat]# firewall-cmd --zone=public --add-port=8887/tcp --permanent
success
[root@centos204 tomcat]# firewall-cmd --zone=public --add-port=8886/tcp --permanent
success
[root@centos204 tomcat]# firewall-cmd --reload
success
[root@centos204 tomcat]# firewall-cmd --zone=public --list-ports
8888/tcp 8887/tcp 8886/tcp
[root@centos204 tomcat]#
步骤3,把 webapps.dist 目录下的内容拷贝到 webapps
# 查看所有docker 容器
[root@centos204 tomcat]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
99e3813639c8 tomcat "catalina.sh run" 2 minutes ago Up 2 minutes 0.0.0.0:8886->8080/tcp, :::8886->8080/tcp naughty_maxwell
e7f01a261ee8 tomcat "catalina.sh run" 2 minutes ago Up 2 minutes 0.0.0.0:8887->8080/tcp, :::8887->8080/tcp beautiful_proskuriakova
0b1be1a3dcd2 tomcat "catalina.sh run" 28 minutes ago Up 28 minutes 0.0.0.0:8888->8080/tcp, :::8888->8080/tcp modest_heyrovsky
0a5b713c0021 hello-world "/hello" 24 hours ago Exited (0) 24 hours ago frosty_turing# 进入tomcat容器目录
[root@centos204 tomcat]# docker exec -it 99e3813639c8 /bin/bash
root@99e3813639c8:/usr/local/tomcat# cp -r webapps.dist/* webapps
root@99e3813639c8:/usr/local/tomcat# ls webapps
ROOT docs examples host-manager manager# 进入tomcat容器目录
[root@centos204 tomcat]# docker exec -it e7f01a261ee8 /bin/bash
root@e7f01a261ee8:/usr/local/tomcat# cp -r webapps.dist/* webapps
root@e7f01a261ee8:/usr/local/tomcat# exit
exit
步骤4, 访问 http://192.168.163.204:8887/ , 【2】启动多个tomcat容器
访问成功;
docker是个好东西,1个tomcat镜像,可以启动3个或多个独立运行的tomcat容器,而不是把这3个tomcat 运行在3台机器上; 这就是虚拟化;
centos8上docker tomcat容器访问报404解决方法相关推荐
- vue代码上传服务器后背景图片404解决方法
vue代码上传服务器后背景图片404解决方法 参考文章: (1)vue代码上传服务器后背景图片404解决方法 (2)https://www.cnblogs.com/Mrrabbit/p/7830944 ...
- php 绝对刷新,vue项目线上页面刷新报404 解决方法(绝对有用)
在上线vue开发的前端网页上线后,刷新页面报404错误,因为网页上显示的是静态绝对路径,实际上服务器上是没有改路径的所以刷新汇报错误. 1.vue框架中解决404 vue router mode 默 ...
- idea项目首次通过git上传到码云报错解决方法“push reject”
最近在写一个小项目,想把代码共享到码云上,方便异地开发,结果在idea上传代码时报错了 Push to origin/master was rejected 研究了一下午总算解决. 主要问题是,在工程 ...
- 文件服务器设置共享后拒绝访问,设置DAG共享见证服务器“拒绝访问”报错解决方法...
在我们进行设置DAG共享见证服务器时如果出现如下报错: -------------------------------------------------------- Microsoft Excha ...
- 使用Struts2上传文件超过2M报错解决方法
2019独角兽企业重金招聘Python工程师标准>>> 在使用Struts2进行上传文件时候,如果文件大小超过2M,就会抛出异常. 这是因为Struts2的核心包struts2-co ...
- 史上最坑的证书报错解决方法:Code=3000 未找到应用程序的“aps-environment”的权利字符串
在ios注册远程通知获取设备令牌token的时候 //注册远程通知获取设备令牌toKen [[UIApplication sharedApplication] registerForRemoteNot ...
- angularjs 访问后台的时候,明明路径没有问题,却报404 解决
angularjs 访问后台的时候,明明路径没有问题,却报404 解决 参考文章: (1)angularjs 访问后台的时候,明明路径没有问题,却报404 解决 (2)https://www.cnbl ...
- Maven项中的webapp下的静态页面无法访问报404(记录自己的错误)
第一 如果你和我一样把静态页面写在了webapp下的web-inf文件夹下(这样或导致无法访问报404) 出现这样的情况原因是webapp下的web-inf文件夹是被保护起来的,在开发中是不能被用户所 ...
- 记一次swagger域名无法访问报错解决
记一次swagger域名无法访问报错解决 今天下午项目快要外部测试的时候突然前端小姐姐说测试服务器swagger无法访问了,我心里一惊还有这事,马上排查,毕竟谁不想给小姐姐留个好印象了. 因为在此之前 ...
最新文章
- PHP输出表格的方法
- 8个容易被忽略但不能忽略的SD-WAN功能-Vecloud
- 掌握大数据数据分析师吗?_要掌握您的数据吗? 这就是为什么您应该关心元数据的原因...
- premiere安装失败解决办法
- Spring 4 xml 注解配置谅解 spring
- 计算机图标用鼠标双击和右键都无法启动,电脑桌面只有“我的电脑”图标双击找不开,用右键资源管理器能打开,为什么...
- ie 出现 append无效
- 公司居然使用监听设备,大家来讨论下IT公司应该怎样管理
- 算法导论终于看完了~
- 晶体管电路设计下 【日】铃木雅臣
- GitHub打不开解决方案
- 用JS生成声音,实现钢琴演奏
- 动态绑定style写法
- CSS奇思妙想—使用 mask 实现视频弹幕人物遮罩过滤
- Android高德地图试用
- 安卓电子书格式_[技巧] 无敌的boss级电子书阅读app,全能高手就要一个打十个。...
- 显示农历天气时钟小部件下载_轻松天气安卓版下载|轻松天气app下载_v2.0
- 【软件工程】软件工程知识点提纲7
- 官方12月CISA认证考试报名已正式开始
- oracle 本地ocr,1.Oracle OCR/OLR管理