Docker中部署tomcat過程中遇到的問題及解決
問題總結(jié)
問題1:外網(wǎng)無法通過IP+端口直接訪問基于tomcat的docker容器.
問題2:外網(wǎng)可以訪問對應(yīng)的網(wǎng)頁,但是顯示404。
本文講的內(nèi)容都是基于已經(jīng)學(xué)會簡單的部署鏡像到容器的人,有些簡單的指令和選項不會講解用法。
問題1
案例復(fù)現(xiàn):
1.首先,先在docker容器上運行一個tomcat容器
docker run --name tomcat1 -p 8088:8088 -d 108db0e7c85e
2.查看容器是否運行成功:docker ps,下圖為運行成功的顯示

3.在瀏覽器輸入IP+主機對應(yīng)端口號或使用curl localhost:8088訪問后,發(fā)現(xiàn)失敗

問題解析:出現(xiàn)這種無法訪問的問題一般就是端口映射出現(xiàn)了問題。
解決方法:
1.重新運行一個容器:(將tomcat容器端口號改為8080)
docker run --name tomcat2 -p 8089:8080 -d 108db0e7c85e
2.進入那個不能訪問的容器里面,修改tomcat端口號
進入tomcat1容器內(nèi)部: docker exec -it tomcat1 bash
這里操作難度會比較大,因為docker容器中無法使用vi和vim等文本編輯器,需要你自己下載
針對問題1:要注意端口映射,主機端口可以自己定義,但容器映射的端口必須與應(yīng)用的配置端口一樣,列如nginx默認80,tomcat默認8080,如果已經(jīng)運行了,不想刪除容器,則可以進入容器內(nèi)修改應(yīng)用端口號。
問題2
案例復(fù)現(xiàn):
1.主機和容器的端口號設(shè)置沒問題,可以訪問對應(yīng)地址,但是卻只顯示404。(未找到數(shù)據(jù))

問題解析:
官方 Tomcat Docker 鏡像為了安全性和最小化原則,默認將 web 應(yīng)用文件放在 webapps.dist 目錄中,而 webapps 目錄則是空的。**而用于加載的頁面和應(yīng)用都是由webapps來提供的。
**這樣做是為了防止默認的管理界面(如 manager 和 host-manager)在未正確配置安全設(shè)置前暴露在外。如下圖所示,webapps為空。

解決方法:
將webapps.dist中的內(nèi)容拷貝到webapps中。

這時再通過外網(wǎng)訪問該容器就可以正常顯示頁面了。

總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Docker build創(chuàng)建鏡像命令示例實踐
本文講解Dockerfile的核心概念、基礎(chǔ)指令、構(gòu)建流程及優(yōu)化技巧,涵蓋鏡像層結(jié)構(gòu)、構(gòu)建上下文、常用命令參數(shù),強調(diào)多階段構(gòu)建、輕量鏡像等最佳實踐,感興趣的朋友跟隨小編一起看看吧2025-08-08
docker打包一個包含python3的centos8的新鏡像過程
用戶通過下載CentOS鏡像、Python安裝包及阿里源配置,編寫Dockerfile并使用Shell腳本自動化打包,實現(xiàn)與Git的協(xié)同更新,確保鏡像便捷維護和快速部署2025-10-10
docker pull/build失敗設(shè)置國內(nèi)鏡像源的問題
這篇文章主要介紹了docker pull/build失敗設(shè)置國內(nèi)鏡像源的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-05-05
docker部署elasticsearch和xpack密碼的詳細過程
本文主要介紹在docker環(huán)境下如何快速部署elasticsearch單機版本和集群版本,和增加xpack簡單用戶名密碼配置,文中有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下2024-01-01

