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 啟動elasticsearch鏡像,掛載目錄后報錯的解決
這篇文章主要介紹了docker 啟動 elasticsearch鏡像,掛載目錄后報錯的解決,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11如何在Docker環(huán)境下為Nginx配置HTTPS
如何在Docker環(huán)境下為Nginx配置HTTPS,使用自簽名證書實現(xiàn)加密通信,本文給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧2024-11-11Docker Stack部署Java Web項目的實現(xiàn)
本文主要介紹了Docker Stack部署Java Web項目的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06springboot整合docker部署實現(xiàn)兩種構(gòu)建Docker鏡像方式
這篇文章主要介紹了springboot整合docker部署實現(xiàn)兩種構(gòu)建Docker鏡像方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-04-04