您好,登錄后才能下訂單哦!
Tomcat簡介
Tomcat是Apache 軟件基金會(Apache Software Foundation)的Jakarta 項目中的一個核心項目,由Apache、Sun 和其他一些公司及個人共同開發而成。由于有了Sun 的參與和支持,最新的Servlet 和JSP 規范總是能在Tomcat 中得到體現,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 規范。因為Tomcat 技術先進、性能穩定,而且免費,因而深受Java 愛好者的喜愛并得到了部分軟件開發商的認可,成為目前比較流行的Web 應用服務器。
Tomcat優點
1、兼有可擴du展性和安全性。假如單位時間內訪問請求zhi數急劇增加,可以用相對較低的費dao用增加前端的能力。
2、比較容易擴展。由于是通過在這臺功能強大的服務器上運行的單個servlet容器,實際上也就不需要考慮session狀態在分布式環境下的維護這類復雜的問題。
3、臺后端服務器在外界不可以訪問,網上的黑客只能訪問前端的web服務器,不能直接訪問后端的應用服務器,這就提高了安全性。但這并不意味著黑客們不能通過網絡瀏覽器進行其它形式的攻擊。
一、 準備工作
關閉selinux服務
getenforce 查看selinux狀態,并關閉selinux,否則啟動docker時會報錯。
[root@localhost ~]# getenforce 查看selinux狀態
Disabled
修改selinux配置文件
docker啟動報錯信息:
修改完selinux后重啟服務器:
[root@localhost ~]# reboot
(注:安裝軟件為docker的可能會遇到這個問題,安裝軟件為docker-ce可能不會遇到。)
[root@localhost ~]#systemctl enable docker.service 添加開機啟動
[root@localhost ~]# docker version 查看docker版本
Client: Docker Engine - Community
Version: 19.03.5
API version: 1.40
Go version: go1.12.12
Git commit: 633a0ea
Built: Wed Nov 13 07:25:41 2019
OS/Arch: linux/amd64
Experimental: false
[root@localhost ~]# docker run -d --name tomcat -p 8081:8080 docker.io/tomcat
[root@localhost ~]# systemctl status firewalld.service 查看防火墻運行狀態
[root@localhost ~]# docker start tomcat
注:
前提:在此處由于前面將防火墻關閉,導致在啟動Tomcat鏡像時,無法啟動。
原因:由于Tomcat鏡像需要用到NAT服務,關閉防火墻導致NAT服務無法使用。
問題信息:
[root@localhost ~]# docker start tomcat
Error response from daemon: driver failed programming external connectivity on endpoint tomcat (826ed3a9043296bc37b913c8f0cd900fe7424ffdcb93ff22d5f95fc39070a21f): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8081 -j DNAT --to-destination 172.17.0.2:8080 ! -i docker0: iptables: No chain/target/match by that name.
[root@localhost ~]# docker ps –a 查看鏡像信息
注意Tomcat鏡像的PORTS信息是否是0.0.0.0:8081->8080/tcp內容,是的話直接訪問IP:8081,不是的話可能需要做NAT轉換,自定義端口訪問。
三、 效果圖
四、 部署網頁測試
將web數據拷貝到Tomcat容器中
[root@localhost ~]# docker cp XXX.war 4c069f9a9851:/usr/local/tomcat/webapps
[root@localhost ~]# docker exec -it 4c069f9a9851 /bin/bash 進入Tomcat容器
root@4c069f9a9851:/usr/local/tomcat# cd webapps/
root@4c069f9a9851:/usr/local/tomcat/webapps# ls
ROOT docs examples host-manager index.html manager
退出docker容器,Ctrl+p+q
重新啟動容器,docker restart tomcat
到此web部署就算完成了。
可參考:https://blog.csdn.net/liqz666/article/details/82180581
五、 常用命令
ip addr/ip link/ ifconfig:查看宿主機里ip地址(宿主機表示是虛擬機)
systemctl start docker/service start docker:啟動docker服務
systemctl stop docker:關閉docker服務
docker run:啟動container
docker seach xxxx(鏡像名稱):檢索鏡像
docker pull xxx(鏡像名稱):拉取鏡像
docker images:列出鏡像
docker --version:查看docker的版本信息
docker exec Container Id:進入容器
docker exec -it NAMES(自定義名稱) /bin/bash:進入--name命名的容器
docker exec NAMES(容器的自定義名稱)-it bash:進入容器里進行操作
docker attach Container Id:進入到容器的終端
docker inspect IMAGE ID:顯示容器或鏡像的元數據
[root@(container id)]:比如root@24527d42d3eb表示已進入docker里的一個CONTAINER ID的容器內部
docker ps:查看docker里運行的容器(status為Up....表示運行中)
docker ps -a:查看docker里已停止或正在運行的容器(status為Exit)
docker start CONTAINER ID :如果容器的狀態為Exit,用它來啟動容器
docker stop CONTAINER ID :停止正在運行的容器,刪除一個容器必須先要停止
docker restart :當部署web項目的war文件,到tomcat里的webapps里面了,重啟一下docker服務,就自動解壓了war文件
docker rm CONTAINER ID :刪除容器
docker rm $(docker ps -a -q):刪除所有已停止的容器;
docekr rmi IMAGE ID:刪除鏡像
rm -rf xxxx:強制刪除某個war.文件或目錄、文件
docker cp /xxx.war CONTAINER ID :/usr/local/tomcat/webapps:從/根目錄復制一個打包后的Java web war文件 到tomcat容器里的webapps工作目錄里
docker exec CONTAINER ID ls /usr/local/tomcat:默認的 安裝tomcat鏡像的webapps目錄
docker run -name xxx -p (自定義端口號,用來訪問的):(容器的端口號:比如tomcat的8080,mysql的3306) -d docker.io/tomcat(鏡像名稱):表示在docker里運行一個tomcat容器,如果沒有鏡像,自動pull一個tomcat的鏡像
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
--name 為容器取一個名字
-p 容器要映射的端口號
-d:后臺運行
-t:進入終端
-i:獲得一個交互式的連接,通過獲取container的輸入
/bin/bash:在container中啟動一個bash shell
舉例:docker run --name tomcat -p 8081:8080 -d tomcat
六、 查看docker日志
[root@localhost ~]# journalctl -u docker.service 查看docker日志
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。