Docker創(chuàng)建tomcat容器實(shí)例后無(wú)法訪問(wèn)(HTTP狀態(tài)404)
一、場(chǎng)景重現(xiàn)
1. docker拉取tomcat鏡像
docker pull tomcat
不指定版本默認(rèn)拉取的最新的latest版本
2. 查看拉取的鏡像
docker images
3. 運(yùn)行鏡生成容器并運(yùn)行,同時(shí)像映射端口
docker run --name tomcat-libai -it -p 9999:8080 -d tomcat
查看運(yùn)行的容器
docker ps
看到容器正在運(yùn)行,且端口映射為9999
4. 查看本機(jī)ip
ifconfig
如果沒(méi)安裝net-tools會(huì)提示安裝
sudo apt install net-tools
5. 訪問(wèn)tomcat在本機(jī)的映射地址
172.20.10.13:9999
訪問(wèn)時(shí)頁(yè)面是404
二、分析
首先我們拉取鏡像的時(shí)候沒(méi)有指定版本,默認(rèn)為最新的版本tomcat:latest
那么這個(gè)版本有什么特別的地方呢
我們都知道tomcat訪問(wèn)界面的index.jsp文件是在webapps目錄下的
我們進(jìn)入容器,查看一下tomcat目錄下的webapps文件夾下有什么東西
1. 進(jìn)入tomcat容器
docker exec -it tomcat-libai /bin/bash
2. 查看當(dāng)前目錄
看到webapps以及webapps.dist兩個(gè)目錄
ls -l
3. 查看webapps目錄內(nèi)容
//進(jìn)入webapps目錄, cd webapps //查看webapps目錄內(nèi)容 ls -l
發(fā)現(xiàn)webapps中是空的,這也就是為什么我們?cè)L問(wèn)時(shí)界面404的原因
最新版的tomcat的webapps目錄內(nèi)容為空,他的內(nèi)容都在wenapps.dist中
三、思路
想要解決這個(gè)問(wèn)題有兩個(gè)方法
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. 再次訪問(wèn)
172.20.10.13:9999
可正常訪問(wèn),我們也能看到的確是tomcat最新的版本10.0.14
方案二
使用8或者9的tomcat版本
如果在容器內(nèi)可輸入exit退出容器
1. 搜索鏡像
在倉(cāng)庫(kù)中搜索tomcat9的版本
docker search tomcat9
2. 拉取tomcat9鏡像
拉取自己要用的鏡像,我這里使用donglsheng/tomcat9_jdk8這個(gè)
docker pull donglsheng/tomcat9_jdk8
3. 查看鏡像
拉取后查看鏡像
docker images
4. 運(yùn)行鏡像生成容器實(shí)例
docker run --name tomcat9-libai -it -p 8888:8080 -d oupula/tomcat9_jdk8
5. 查看已運(yùn)行的容器
docker ps
6. 訪問(wèn)網(wǎng)址
172.20.10.13:8888
可正常訪問(wèn),tomcat版本為9.0.12
到此這篇關(guān)于Docker創(chuàng)建tomcat容器實(shí)例后無(wú)法訪問(wèn)(HTTP狀態(tài)404)的文章就介紹到這了,更多相關(guān)docker拉取tomcat提示404內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
嘗試Docker+Nginx部署單頁(yè)應(yīng)用方法
這篇文章主要介紹了嘗試Docker+Nginx部署單頁(yè)應(yīng)用方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-02-02Docker 部署 Prometheus的安裝詳細(xì)教程
這篇文章主要介紹了Docker 部署 Prometheus及安裝方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-08-08docker 啟動(dòng)elasticsearch鏡像,掛載目錄后報(bào)錯(cuò)的解決
這篇文章主要介紹了docker 啟動(dòng) elasticsearch鏡像,掛載目錄后報(bào)錯(cuò)的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11Docker容器編排實(shí)現(xiàn)過(guò)程解析
這篇文章主要介紹了Docker容器編排實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10如何在Docker環(huán)境下為Nginx配置HTTPS
如何在Docker環(huán)境下為Nginx配置HTTPS,使用自簽名證書實(shí)現(xiàn)加密通信,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-11-11Docker Stack部署Java Web項(xiàng)目的實(shí)現(xiàn)
本文主要介紹了Docker Stack部署Java Web項(xiàng)目的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06springboot整合docker部署實(shí)現(xiàn)兩種構(gòu)建Docker鏡像方式
這篇文章主要介紹了springboot整合docker部署實(shí)現(xiàn)兩種構(gòu)建Docker鏡像方式,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-04-04