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)文章
在 Docker 中安裝和運行 PostgreSQL的詳細步驟
本文簡述在Docker中安裝和運行PostgreSQL的流程安裝Docker、拉取鏡像、運行容器并配置端口與密碼、驗證容器狀態(tài)、連接數(shù)據(jù)庫及創(chuàng)建用戶,完成數(shù)據(jù)庫部署,感興趣的朋友一起看看吧2025-06-06
Docker搭建PHP運行環(huán)境完整步驟(圖文教程)
PHP是一種廣泛使用的編程語言,被用于Web開發(fā)和服務(wù)器管理等各種用途,而Docker則是一種非常流行的容器化平臺,可以方便地管理應(yīng)用程序和環(huán)境,這篇文章主要給大家介紹了關(guān)于Docker搭建PHP運行環(huán)境的完整步驟,需要的朋友可以參考下2023-09-09
Docker新建centos鏡像并配置遠程訪問的方法(親自實踐)
本文介紹了通過Docker創(chuàng)建多個CentOS容器模擬服務(wù)器環(huán)境的方法,涵蓋鏡像下載、網(wǎng)絡(luò)配置、自啟動設(shè)置及解決systemd問題,需添加privileged=true參數(shù)并安裝sshd以實現(xiàn)遠程訪問和固定IP分配,本文給大家介紹的非常詳細,感興趣的朋友一起看看吧2025-09-09
修改docker網(wǎng)橋網(wǎng)段范圍實現(xiàn)方式
文章介紹了如何修改Docker默認的172.17.0.0/16網(wǎng)橋網(wǎng)段,以避免與局域網(wǎng)沖突,提供了兩種方法:一種是修改Docker配置文件并重啟服務(wù),另一種是創(chuàng)建自定義網(wǎng)絡(luò)并指定子網(wǎng)范圍,同時,還提到了一些參考命令,如查看docker0網(wǎng)橋信息和刪除docker0網(wǎng)橋2025-12-12

