https://blog.51cto.com/13760351/2469305?source=drh
部署原理
使用Docker部署war項目,必須要用容器,我們就用tomcact容器,其實都是將war包丟到tomcat的webapps目錄下,tomcat啟動的情況下會自動解壓war包。
部署方法
1.在Docker中安裝tomcat容器的鏡像,然后把war包丟到tomcat鏡像下webapps中即可。但是如果tomcat關閉了,其webapps下的包就會消失。
2.利用掛載,還是安裝tomcat容器的鏡像,但是不把war包丟到tomcat下的webapps中,直接創建一個外部文件夾,將這個外部文件夾跟wabapps關聯,這樣把war丟到新建的文件夾中,tomcat的webapps也能讀取到這個war包,這就是掛載。
操作環境:
1.已關閉防火牆,安全性
2.已經安裝docker容器
3.宿主機centos 7系統
4.項目已打好war包
5.tomcat相關配置文件已准備好
部署過程
1.搜索tomcat鏡像
docker search tomcat
2.下載tomcat鏡像
docker pull tomcat
3.查看鏡像
docker images
4.啟動容器
docker run -d -p 8088:8080 tomcat &
排坑過程
如果發現網頁無法訪問,返回404
原因:下載的tomcat鏡像有問題,容器中的webapps文件夾為空,故無法訪問
嘗試以下步驟:
docker ps
docker exec -it 8126cd702e4b /bin/bash #進入容器
rm -rf webapps #刪除空文件webapps
mv webapps.dist webapps #更換webapps文件
網頁驗證
部署war包項目
第一種方法:war包拷貝到容器中
1.把war包和配置文件拷貝到宿主機
2.拷貝到docker容器里面
docker cp admin.war 834273c974f2:/usr/local/tomcat/webapps
docker cp context.xml 834273c974f2:/usr/local/tomcat/conf
3.重啟容器
docker restart 2d9a7cdacc8b
4.網頁驗證:
第二種方法:掛載共享目錄
1. 創建掛載目錄
mkdir /root/warPackage
2.上傳war包到 /root/warPackage
3. 掛載
docker run -it -v /root/warPackage/:/usr/local/tomcat/webapps/ /bin/bash
(-v (掛載) 虛擬機目錄 容器目錄)
4.查看掛載
宿主機查看:
cd /root/warPackage
ls
容器內查看:
docker exec -it ecf6b6baa517 /bin/bash
cd webapps
ls
若此時網頁無法訪問,可嘗試下面解決方法:
docker exec -it ecf6b6baa517 /bin/bash #進入容器
cd webapps
mv webapps webapps1 #重命名,目前容器運行,無法刪除,只能改名字
mv webapps.dist webapps #替換webapps文件
exit #退出容器
docker run -it -v /root/warPackage/:/usr/local/tomcat/webapps/ /bin/bash
#重新掛載
注意:
1.新下載的tomcat鏡像若啟動無法訪問,要參考排坑過程,若正常,可忽略。
2.掛載的war包路徑可自定義,若無法訪問,也可參考上面方法。
3.這里介紹的2種方法,可以根據公司需要,自行選擇使用。