目录

【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解决方法相关推荐

  1. vue代码上传服务器后背景图片404解决方法

    vue代码上传服务器后背景图片404解决方法 参考文章: (1)vue代码上传服务器后背景图片404解决方法 (2)https://www.cnblogs.com/Mrrabbit/p/7830944 ...

  2. php 绝对刷新,vue项目线上页面刷新报404 解决方法(绝对有用)

    在上线vue开发的前端网页上线后,刷新页面报404错误,因为网页上显示的是静态绝对路径,实际上服务器上是没有改路径的所以刷新汇报错误. 1.vue框架中解决404 vue router  mode 默 ...

  3. idea项目首次通过git上传到码云报错解决方法“push reject”

    最近在写一个小项目,想把代码共享到码云上,方便异地开发,结果在idea上传代码时报错了 Push to origin/master was rejected 研究了一下午总算解决. 主要问题是,在工程 ...

  4. 文件服务器设置共享后拒绝访问,设置DAG共享见证服务器“拒绝访问”报错解决方法...

    在我们进行设置DAG共享见证服务器时如果出现如下报错: -------------------------------------------------------- Microsoft Excha ...

  5. 使用Struts2上传文件超过2M报错解决方法

    2019独角兽企业重金招聘Python工程师标准>>> 在使用Struts2进行上传文件时候,如果文件大小超过2M,就会抛出异常. 这是因为Struts2的核心包struts2-co ...

  6. 史上最坑的证书报错解决方法:Code=3000 未找到应用程序的“aps-environment”的权利字符串

    在ios注册远程通知获取设备令牌token的时候 //注册远程通知获取设备令牌toKen [[UIApplication sharedApplication] registerForRemoteNot ...

  7. angularjs 访问后台的时候,明明路径没有问题,却报404 解决

    angularjs 访问后台的时候,明明路径没有问题,却报404 解决 参考文章: (1)angularjs 访问后台的时候,明明路径没有问题,却报404 解决 (2)https://www.cnbl ...

  8. Maven项中的webapp下的静态页面无法访问报404(记录自己的错误)

    第一 如果你和我一样把静态页面写在了webapp下的web-inf文件夹下(这样或导致无法访问报404) 出现这样的情况原因是webapp下的web-inf文件夹是被保护起来的,在开发中是不能被用户所 ...

  9. 记一次swagger域名无法访问报错解决

    记一次swagger域名无法访问报错解决 今天下午项目快要外部测试的时候突然前端小姐姐说测试服务器swagger无法访问了,我心里一惊还有这事,马上排查,毕竟谁不想给小姐姐留个好印象了. 因为在此之前 ...

最新文章

  1. PHP输出表格的方法
  2. 8个容易被忽略但不能忽略的SD-WAN功能-Vecloud
  3. 掌握大数据数据分析师吗?_要掌握您的数据吗? 这就是为什么您应该关心元数据的原因...
  4. premiere安装失败解决办法
  5. Spring 4 xml 注解配置谅解 spring
  6. 计算机图标用鼠标双击和右键都无法启动,电脑桌面只有“我的电脑”图标双击找不开,用右键资源管理器能打开,为什么...
  7. ie 出现 append无效
  8. 公司居然使用监听设备,大家来讨论下IT公司应该怎样管理
  9. 算法导论终于看完了~
  10. 晶体管电路设计下 【日】铃木雅臣
  11. GitHub打不开解决方案
  12. 用JS生成声音,实现钢琴演奏
  13. 动态绑定style写法
  14. CSS奇思妙想—使用 mask 实现视频弹幕人物遮罩过滤
  15. Android高德地图试用
  16. 安卓电子书格式_[技巧] 无敌的boss级电子书阅读app,全能高手就要一个打十个。...
  17. 显示农历天气时钟小部件下载_轻松天气安卓版下载|轻松天气app下载_v2.0
  18. 【软件工程】软件工程知识点提纲7
  19. 官方12月CISA认证考试报名已正式开始
  20. oracle 本地ocr,1.Oracle OCR/OLR管理

热门文章

  1. P4781 【模板】拉格朗日插值
  2. cf1556B B. Take Your Places!
  3. Saving Beans HDU - 3037(卢卡斯定理)
  4. YBTOJ:字符串题(KMP)
  5. 1.14 日志(递推ybtoj)
  6. P4707-重返现世【dp,数学期望,扩展min-max容斥】
  7. hdu5909-Tree Cutting【FWT】
  8. YbtOJ#532-往事之树【广义SAM,线段树合并】
  9. 【单调栈】奶牛的歌声(jzoj 1256)
  10. 【图论】【Kosaraju】刻录光盘(ssl 2344)