使用 Docker 搭建 Tomcat 运行环境
轉自:?http://m.oschina.net/blog/616526, 版權歸原作者所有。
?
1 Docker與虛擬機
? ?
2 搭建過程
2.1 準備宿主系統
準備一個 CentOS 7操作系統,具體要求如下:
-
必須是 64 位操作系統
-
建議內核在 3.8 以上
通過以下命令查看您的 CentOS 內核:
#?uname?-r2.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?MB2.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/bashexport?JAVA_HOME=/opt/jdk/ export?PATH=$JAVA_HOME/bin:$PATHsh?/opt/tomcat/bin/catalina.sh?run最后,為運行腳本添加執行權限:
#?chmod?u+x?/root/run.sh2.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?f2352.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????????STATUS2.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?
?
?
PS:本文參考了大神博文:http://my.oschina.net/huangyong/blog/372491?fromerr=kHrZPM01,并在原文基礎上,進行了部分添加修改。
轉載于:https://www.cnblogs.com/itech/p/5220122.html
總結
以上是生活随笔為你收集整理的使用 Docker 搭建 Tomcat 运行环境的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: node开发 npm install
- 下一篇: Spring MVC 复习笔记01