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,根據(jù)鏡像啟動tomcat容器
虛擬機端口8888轉(zhuǎn)發(fā)到 tomcat容器8080端口;
[root@centos204 tomcat] 0b1be1a3dcd2e9723343a8b3f3f0bcd1f1a07da38b3090d256132d8320e9add2步驟4,win10瀏覽器 訪問 ?http://192.168.163.204:8888/ 報404
?
?步驟5,查看防火墻
發(fā)現(xiàn)什么都沒有,即centos8機器上8888端口無法被防火墻隔離了
# 查看防火墻開通網(wǎng)絡(luò)訪問端口列表 [root@centos204 tomcat] 空 [root@centos204 tomcat]# # 查看防火墻狀態(tài) [root@centos204 tomcat] ● 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端口的防火墻訪問權(quán)限
# 開通8888端口 [root@centos204 tomcat]# firewall-cmd --zone=public --add-port=8888/tcp --permanent success # 查看已開通端口 [root@centos204 tomcat]# firewall-cmd --zone=public --list-ports 空# 重新加載防火墻規(guī)則到內(nèi)存 [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, 并進入該容器的內(nèi)存運行目錄 [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的部署根目錄沒有任何內(nèi)容,所以訪問報404; 下面我們 把 webapps.dist 的內(nèi)容拷貝到 webapps ;
?步驟9,把 webapps.dist 的內(nèi)容拷貝到 webapps
root@0b1be1a3dcd2:/usr/local/tomcat# cp -r webapps.dist/* webapps/步驟10,再次訪問? http://192.168.163.204:8888/; 成功!
?
注意:我這里只是測試,所以把 webapps.dist 目錄中的內(nèi)容拷貝到了 webapps 下; 也可以不這樣做,把虛擬機上的物理磁盤目錄掛載到 tomcat容器部署根目錄 webapps,也可以實現(xiàn)部署的目的;
【2】啟動多個tomcat容器
步驟1,利用tomcat docker鏡像啟動多個tomat容器
# 利用tomcat鏡像啟動第2個tomcat容器,外部端口8887 [root@centos204 tomcat] e7f01a261ee88d18507142c6a09a1548d2fd6f7586aad7281e2b980fb379f306# 利用tomcat鏡像啟動第3個tomcat容器,外部端口8886 [root@centos204 tomcat] 99e3813639c8defd220950a57cf6a5e744677db407b0dd53832144b9c3a5878c [root@centos204 tomcat]#步驟2,按照管理,開通8887 8886 防火墻權(quán)限
[root@centos204 tomcat] success [root@centos204 tomcat] success [root@centos204 tomcat] success [root@centos204 tomcat] 8888/tcp 8887/tcp 8886/tcp [root@centos204 tomcat]#步驟3,把 webapps.dist 目錄下的內(nèi)容拷貝到 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臺機器上; 這就是虛擬化;
總結(jié)
以上是生活随笔為你收集整理的centos8上docker tomcat容器访问报404解决方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 减少的近义词 减少的近义词是什么
- 下一篇: springboot2.5.5配置dru