您好,登錄后才能下訂單哦!
本篇內容主要講解“Docker如何搭建Tomcat運行環境”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Docker如何搭建Tomcat運行環境”吧!
docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的 linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。
1 docker與虛擬機
2 搭建過程
2.1 準備宿主系統
準備一個 centos 7操作系統,具體要求如下:
必須是 64 位操作系統
建議內核在 3.8 以上
通過以下命令查看您的 centos 內核:
# uname -r
2.2 安裝docker
# yum install docker
可使用以下命令,查看 docker 是否安裝成功:
# docker version
若輸出了 docker 的版本號,則說明安裝成功了,可通過以下命令啟動 docker 服務:
# systemctl start docker.service
一旦 docker 服務啟動完畢,就可以開始使用 docker 了。
2.3 下載鏡像
以 centos 為例,下載一個 centos 的鏡像:
# docker pull centos:7.2.1511
下載完成后,使用命令查看本地鏡像列表:
# docker images repository tag image id created virtual size docker.io/centos 7.2.1511 83ee614b834e 9 weeks ago 194.6 mb
2.4 啟動容器
容器是在鏡像的基礎上來運行的,一旦容器啟動了,我們就可以登錄到容器中,安裝自己所需的軟件或應用程序。
使用以下命令即可啟動容器:
# docker run -i -t -v /root/software/:/mnt/software/ 83ee /bin/bash
命令包含以下三個部分:
docker run <相關參數> <鏡像 id> <初始命令>
其中,相關參數包括:
-i:表示以“交互模式”運行容器
-t:表示容器啟動后會進入其命令行
-v:表示需要將本地哪個目錄掛載到容器中,格式:-v <宿主機目錄>:<容器目錄>
本例中,所有安裝程序都放在了宿主機的/root/software/目錄下,現在需要將其掛載到容器的/mnt/software/目錄下。
# pwd /root/software # ls apache-tomcat-7.0.67.tar.gz jdk1.7.0_79.tar.gz
初始命令表示一旦容器啟動,需要運行的命令,此時使用“/bin/bash”,表示啟動后直接進入bash shell。
2.5 安裝軟件
為了搭建 java web 運行環境,需要安裝 jdk 與 tomcat,下面的過程均在容器內部進行。本例中,選擇/opt/目錄作為安裝目錄,首先需要通過cd /opt/命令進入該目錄。
2.5.1 安裝jdk
首先,解壓 jdk 程序包:
# tar -zxf /mnt/software/jdk1.7.0_79.tar.gz -c .
然后,移動 jdk 目錄:
# mv jdk1.7.0_79/ /opt/jdk/
2.5.2 安裝tomcat
首先,解壓tomcat程序包:
# tar -zxf /mnt/software/apache-tomcat-7.0.67.tar.gz -c .
然后,移動tomcat目錄:
# mv apache-tomcat-7.0.67/ /opt/tomcat/
2.5.3 編寫運行腳本
編寫一個運行腳本,當啟動容器時,運行該腳本,啟動 tomcat。
首先,創建運行腳本:
# touch /root/run.sh # vi /root/run.sh
然后,編輯腳本內容如下:
#!/bin/bash export java_home=/opt/jdk/ export path=$java_home/bin:$path sh /opt/tomcat/bin/catalina.sh run
最后,為運行腳本添加執行權限:
# chmod u+x /root/run.sh
2.6 退出容器
當以上步驟全部完成后,可使用exit命令,退出容器。
隨后,可使用如下命令查看正在運行的容器:
# docker ps
此時,應該看不到任何正在運行的程序,因為剛才已經使用exit命令退出的容器,此時容器處于停止狀態,可使用如下命令查看所有容器:
# docker ps -a container id image command created status 02bebc3f546a 83ee "/bin/bash" 12 minutes ago exited (0) 7 seconds ago
記住以上container id(容器 id),隨后將通過該容器,創建一個可運行 tomcat 鏡像。
2.7 創建tomcat鏡像
使用以下命令,根據某個“容器 id”來創建一個新的“鏡像”:
# docker commit 02be mytomcat:1.0 65c88ec597e04812ec3b06b7749578bebcae3aa3d735b565ed25db6818d9d7f3 # docker images repository tag image id created virtual size mytomcat 1.0 65c88ec597e0 about a minute ago 514.4 mb docker.io/centos 7.2.1511 83ee614b834e 9 weeks ago 194.6 mb
該容器的id是02be,所創建的鏡像名是“mytomcat:1.0”,隨后可使用鏡像來啟動tomcat容器。
2.8 啟動tomcat容器
首先,新建/root/webapps/root目錄,并在該目錄下創建一個index.html文件,文件內容如下:
<html> <body> <h2>hello world!</h2> </body> </html>
正如上面所描述的那樣,可以通過“鏡像名”或“鏡像 id”來啟動容器,與上次啟動容器不同的是,現在不再進入容器的命令行,而是直接啟動容器內部的 tomcat 服務。此時,需要使用以下命令:
# docker run -d -p 58080:8080 -v /root/webapps/:/opt/tomcat/webapps/ --name mytomcat_1 mytomcat:1.0 /root/run.sh
其中,相關參數包括:
-d:表示以“守護模式”執行/root/run.sh腳本,此時 tomcat 控制臺不會出現在輸出終端上。
-p:表示宿主機與容器的端口映射,此時將容器內部的 8080 端口映射為宿主機的 58080 端口,這樣就向外界暴露了 58080 端口,可通過 docker 網橋來訪問容器內部的 8080 端口了。
-v:表示需要將本地哪個目錄掛載到容器中,格式:-v <宿主機目錄>:<容器目錄>
--name:表示容器名稱,用一個有意義的名稱命名即可。
在瀏覽器中,輸入宿主ip和端口號,即可訪問 tomcat:
2.9 最終示意圖:
2.10 停止tomcat容器
# docker ps -a container id image command created status f23598b6544d mytomcat:1.0 "/root/run.sh" 6 minutes ago up 6 minutes # docker stop f235
2.11 移除容器
# docker ps -a container id image command created status f23598b6544d mytomcat:1.0 "/root/run.sh" 8 minutes ago exited (137) # docker rm f235 f235 # docker ps -a container id image command created status
2.12 移除鏡像
# docker images repository tag image id created virtual size mytomcat 1.0 65c88ec597e0 31 minutes ago 514.4 mb docker.io/centos 7.2.1511 83ee614b834e 9 weeks ago 194.6 mb # docker rmi 65c8 untagged: mytomcat:1.0 deleted: 65c88ec597e04812ec3b06b7749578bebcae3aa3d735b565ed25db6818d9d7f3 # docker images repository tag image id created virtual size docker.io/centos 7.2.1511 83ee614b834e 9 weeks ago 194.6 mb
到此,相信大家對“Docker如何搭建Tomcat運行環境”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。