Docker創(chuàng)建tomcat容器實例后無法訪問(HTTP狀態(tài)404)
一、場景重現(xiàn)
1. docker拉取tomcat鏡像
docker pull tomcat

不指定版本默認拉取的最新的latest版本
2. 查看拉取的鏡像
docker images

3. 運行鏡生成容器并運行,同時像映射端口
docker run --name tomcat-libai -it -p 9999:8080 -d tomcat
查看運行的容器
docker ps

看到容器正在運行,且端口映射為9999
4. 查看本機ip
ifconfig

如果沒安裝net-tools會提示安裝
sudo apt install net-tools
5. 訪問tomcat在本機的映射地址
172.20.10.13:9999
訪問時頁面是404

二、分析
首先我們拉取鏡像的時候沒有指定版本,默認為最新的版本tomcat:latest
那么這個版本有什么特別的地方呢
我們都知道tomcat訪問界面的index.jsp文件是在webapps目錄下的
我們進入容器,查看一下tomcat目錄下的webapps文件夾下有什么東西
1. 進入tomcat容器
docker exec -it tomcat-libai /bin/bash
2. 查看當(dāng)前目錄
看到webapps以及webapps.dist兩個目錄
ls -l

3. 查看webapps目錄內(nèi)容
//進入webapps目錄, cd webapps //查看webapps目錄內(nèi)容 ls -l

發(fā)現(xiàn)webapps中是空的,這也就是為什么我們訪問時界面404的原因
最新版的tomcat的webapps目錄內(nèi)容為空,他的內(nèi)容都在wenapps.dist中
三、思路
想要解決這個問題有兩個方法
1. 修改weapps
將webapps文件夾刪除,將webapps.dist目錄名稱修改為webapps
2. 使用舊版tomcat
8或者9的tomcat版本即可
四、解決
方案一
刪除webapps,webapps.dist替換為webapps
在容器內(nèi),到tomcat目錄下
cd /usr/local/tomcat

1. 刪除webapps目錄
rm -rf webapps

2. 修改webapps.dist為webapps
mv webapps.dist webapps

3. 再次訪問
172.20.10.13:9999

可正常訪問,我們也能看到的確是tomcat最新的版本10.0.14
方案二
使用8或者9的tomcat版本
如果在容器內(nèi)可輸入exit退出容器
1. 搜索鏡像
在倉庫中搜索tomcat9的版本
docker search tomcat9

2. 拉取tomcat9鏡像
拉取自己要用的鏡像,我這里使用donglsheng/tomcat9_jdk8這個
docker pull donglsheng/tomcat9_jdk8

3. 查看鏡像
拉取后查看鏡像
docker images

4. 運行鏡像生成容器實例
docker run --name tomcat9-libai -it -p 8888:8080 -d oupula/tomcat9_jdk8

5. 查看已運行的容器
docker ps
6. 訪問網(wǎng)址
172.20.10.13:8888

可正常訪問,tomcat版本為9.0.12
到此這篇關(guān)于Docker創(chuàng)建tomcat容器實例后無法訪問(HTTP狀態(tài)404)的文章就介紹到這了,更多相關(guān)docker拉取tomcat提示404內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
在Linux?Docker中部署RStudio?Server實現(xiàn)遠程訪問的操作
下面介紹在Linux?docker中安裝RStudio?Server并結(jié)合cpolar內(nèi)網(wǎng)穿透工具,實現(xiàn)遠程訪問,docker方式安裝可以避免很多問題,一鍵安裝,如設(shè)備沒有安裝docker,需提前安裝docker,對?Docker部署RStudio?Server相關(guān)知識感興趣的朋友一起看看吧2023-12-12
docker?build運行報錯source:?not?found解決分析
這篇文章主要為大家介紹了docker?build運行報錯source:?not?found解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-09-09
淺談Docker run 容器處于created狀態(tài)問題
這篇文章主要介紹了解決Docker run 容器處于created狀態(tài)問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
windows docker環(huán)境設(shè)置注意事項
這篇文章主要介紹了windows docker環(huán)境設(shè)置注意事項的相關(guān)資料,需要的朋友可以參考下2017-01-01
Docker?Compose+Nestjs構(gòu)建Dapr?Redis發(fā)布訂閱分布式應(yīng)用
這篇文章主要為大家介紹了Docker?Compose+Nestjs構(gòu)建Dapr?Redis發(fā)布訂閱分布式應(yīng)用步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-08-08
Docker 默認bridge網(wǎng)絡(luò)中配置DNS的方法
這篇文章主要介紹了Docker 默認bridge網(wǎng)絡(luò)中配置DNS的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03
詳解Windows下運用Docker部署Node.js開發(fā)環(huán)境
這篇文章主要介紹了詳解Windows下運用Docker部署Node.js開發(fā)環(huán)境,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01
Docker中優(yōu)化Mysql運行內(nèi)存的操作
這篇文章主要介紹了Docker當(dāng)中優(yōu)化Mysql運行內(nèi)存的操作,經(jīng)過一番操作可以優(yōu)化為只占用100mb內(nèi)存,具體優(yōu)化方法及技巧跟隨小編一起看看吧2022-01-01

