Docker安裝Tomcat無法訪問的問題及解決
問題出現(xiàn)
在服務器上使用docker安裝tomcat時遇到了無法訪問tomcat的問題。
是因為使用docker pull tomact 下載的tomcat鏡像中包含有兩個webapps 文件夾。
一個文件夾名為webapps,但是這個文件夾是空的,另外一個文件夾名為webapps.dist,里面有tomcat完整的文件夾和文件。
圖示:
問題重現(xiàn)
1、使用docker下載tomcat鏡像
docker pull tomcat:9
圖示:
2、創(chuàng)建tomcat容器
docker run -d -p 8080:8080 tomcat:9
圖示:
3、tomcat容器已經(jīng)運行,但是還是無法訪問tomcat的首頁。
4、立刻查看防火墻端口和ECS安全組的情況。
查看防火墻狀態(tài)
systemctl status firewalld
開啟防火墻
systemctl start firewalld
查看端口信息
firewall-cmd --list-ports # 只看端口信息
開啟端口和重啟防火墻
- 開端口命令:
firewall-cmd --zone=public --add-port=8080/tcp --permanent
- 重啟防火墻:
systemctl restart firewalld.service
查看安全組情況
注意:防火墻8080 端口開了并且阿里云安全組也開放了才能訪問遠程。
5、以上步驟都沒問題,進入容器內(nèi)部,發(fā)現(xiàn)兩個webapps。
docker exec -it 53724a20a48c /bin/bash
其中webapps文件夾為空,而webapps.dist包含完整的tomcat文件。
6、將目錄下webapps.dist里文件復制到webapps。
然后將webapps.dist刪除.
cp -r webapps.dist/* ./webapps rm -rf webapps.dist
7、結果
注意
tomcat容器停止重新啟動后,還會出現(xiàn)這兩個文件夾。
解決方案
對于以上出現(xiàn)的問題,可以通過commit操作創(chuàng)建自己的鏡像就可以完美的避開此類情況的出現(xiàn)。
docker commit 從容器創(chuàng)建一個新的鏡像。
語法:
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
OPTIONS說明:
- -a 提交的鏡像作者
- -c 使用Dockerfile指令來創(chuàng)建鏡像
- -m 提交時的說明文字
- -p 在commit時,將容器暫停
操作步驟
1、創(chuàng)建鏡像
docker commit -a="guardwhy" -m="kobe is mvp" 53724a20a48c tomcat9:9.1
圖示:
2、創(chuàng)建tomcat容器
docker run -d -p 8081:8080 6b8b40011890
3、進入到容器內(nèi)部查看。
docker exec -it 459677594ee1 /bin/bash
圖示:
4、結果
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- Docker?安裝Tomcat、實現(xiàn)Tomcat集群的詳細過程
- 解決docker運行tomcat提示找不到文件的問題
- Docker制作tomcat鏡像并部署項目
- Docker?制作tomcat鏡像并部署項目的步驟
- 基于Docker部署Tomcat集群、 Nginx負載均衡的問題小結
- 使用 docker部署tomcat并接入skywalking的使用
- docker安裝tomcat8的實現(xiàn)方法
- Docker方式啟動tomcat訪問首頁出現(xiàn)404錯誤
- docker安裝tomcat并部署Springboot項目war包的方法
- Docker安裝Tomcat、MySQL和Redis的步驟詳解
- Docker部署Tomcat并開放8082端口的實現(xiàn)步驟
相關文章
Docker?安裝Redis?無法使用配置文件設置密碼問題及解決方法
最近開發(fā)需要使用各種組件,如果都到開發(fā)機上安裝,會占用電腦資源較多,所以使用docker容器來安裝這些組件,這篇文章主要介紹了Docker安裝Redis無法使用配置文件設置密碼問題,需要的朋友可以參考下2023-08-08docker安裝mysql并實現(xiàn)數(shù)據(jù)卷掛載的示例代碼
本文介紹了如何通過Docker安裝MySQL并實現(xiàn)了數(shù)據(jù)卷掛載,詳細說明了創(chuàng)建容器、配置掛載以及驗證數(shù)據(jù)持久性的步驟,對于需要在Docker環(huán)境下部署MySQL的用戶非常有幫助2024-10-10Docker 默認bridge網(wǎng)絡中配置DNS的方法
這篇文章主要介紹了Docker 默認bridge網(wǎng)絡中配置DNS的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03