Docker 搭建 Tomcat 運(yùn)行環(huán)境的方法
Docker 是一個(gè)開(kāi)源的應(yīng)用容器引擎,讓開(kāi)發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的 Linux 機(jī)器上,也可以實(shí)現(xiàn)虛擬化。容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口。
1 Docker與虛擬機(jī)
2 搭建過(guò)程
2.1 準(zhǔn)備宿主系統(tǒng)
準(zhǔn)備一個(gè) CentOS 7操作系統(tǒng),具體要求如下:
必須是 64 位操作系統(tǒng)
建議內(nèi)核在 3.8 以上
通過(guò)以下命令查看您的 CentOS 內(nèi)核:
# uname -r
2.2 安裝Docker
# yum install docker
可使用以下命令,查看 Docker 是否安裝成功:
# docker version
若輸出了 Docker 的版本號(hào),則說(shuō)明安裝成功了,可通過(guò)以下命令啟動(dòng) Docker 服務(wù):
# systemctl start docker.service
一旦 Docker 服務(wù)啟動(dòng)完畢,就可以開(kāi)始使用 Docker 了。
2.3 下載鏡像
以 CentOS 為例,下載一個(gè) 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 啟動(dòng)容器
容器是在鏡像的基礎(chǔ)上來(lái)運(yùn)行的,一旦容器啟動(dòng)了,我們就可以登錄到容器中,安裝自己所需的軟件或應(yīng)用程序。
使用以下命令即可啟動(dòng)容器:
# docker run -i -t -v /root/software/:/mnt/software/ 83ee /bin/bash
命令包含以下三個(gè)部分:
docker run <相關(guān)參數(shù)> <鏡像 ID> <初始命令>
其中,相關(guān)參數(shù)包括:
-i:表示以“交互模式”運(yùn)行容器
-t:表示容器啟動(dòng)后會(huì)進(jìn)入其命令行
-v:表示需要將本地哪個(gè)目錄掛載到容器中,格式:-v <宿主機(jī)目錄>:<容器目錄>
本例中,所有安裝程序都放在了宿主機(jī)的/root/software/目錄下,現(xiàn)在需要將其掛載到容器的/mnt/software/目錄下。
# pwd /root/software # ls apache-tomcat-7.0.67.tar.gz jdk1.7.0_79.tar.gz
初始命令表示一旦容器啟動(dòng),需要運(yùn)行的命令,此時(shí)使用“/bin/bash”,表示啟動(dòng)后直接進(jìn)入bash shell。
2.5 安裝軟件
為了搭建 Java Web 運(yùn)行環(huán)境,需要安裝 JDK 與 Tomcat,下面的過(guò)程均在容器內(nèi)部進(jìn)行。本例中,選擇/opt/目錄作為安裝目錄,首先需要通過(guò)cd /opt/命令進(jìn)入該目錄。
2.5.1 安裝JDK
首先,解壓 JDK 程序包:
# tar -zxf /mnt/software/jdk1.7.0_79.tar.gz -C .
然后,移動(dòng) 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 .
然后,移動(dòng)Tomcat目錄:
# mv apache-tomcat-7.0.67/ /opt/tomcat/
2.5.3 編寫運(yùn)行腳本
編寫一個(gè)運(yùn)行腳本,當(dāng)啟動(dòng)容器時(shí),運(yùn)行該腳本,啟動(dòng) Tomcat。
首先,創(chuàng)建運(yùn)行腳本:
# touch /root/run.sh # vi /root/run.sh
然后,編輯腳本內(nèi)容如下:
#!/bin/bash export JAVA_HOME=/opt/jdk/ export PATH=$JAVA_HOME/bin:$PATH sh /opt/tomcat/bin/catalina.sh run
最后,為運(yùn)行腳本添加執(zhí)行權(quán)限:
# chmod u+x /root/run.sh
2.6 退出容器
當(dāng)以上步驟全部完成后,可使用exit命令,退出容器。
隨后,可使用如下命令查看正在運(yùn)行的容器:
# docker ps
此時(shí),應(yīng)該看不到任何正在運(yùn)行的程序,因?yàn)閯偛乓呀?jīng)使用exit命令退出的容器,此時(shí)容器處于停止?fàn)顟B(tài),可使用如下命令查看所有容器:
# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS 02bebc3f546a 83ee "/bin/bash" 12 minutes ago Exited (0) 7 seconds ago
記住以上CONTAINER ID(容器 ID),隨后將通過(guò)該容器,創(chuàng)建一個(gè)可運(yùn)行 Tomcat 鏡像。
2.7 創(chuàng)建Tomcat鏡像
使用以下命令,根據(jù)某個(gè)“容器 ID”來(lái)創(chuàng)建一個(gè)新的“鏡像”:
# 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,所創(chuàng)建的鏡像名是“mytomcat:1.0”,隨后可使用鏡像來(lái)啟動(dòng)Tomcat容器。
2.8 啟動(dòng)Tomcat容器
首先,新建/root/webapps/ROOT目錄,并在該目錄下創(chuàng)建一個(gè)index.html文件,文件內(nèi)容如下:
<html> <body> <h2>Hello World!</h2> </body> </html>
正如上面所描述的那樣,可以通過(guò)“鏡像名”或“鏡像 ID”來(lái)啟動(dòng)容器,與上次啟動(dòng)容器不同的是,現(xiàn)在不再進(jìn)入容器的命令行,而是直接啟動(dòng)容器內(nèi)部的 Tomcat 服務(wù)。此時(shí),需要使用以下命令:
# docker run -d -p 58080:8080 -v /root/webapps/:/opt/tomcat/webapps/ --name mytomcat_1 mytomcat:1.0 /root/run.sh
其中,相關(guān)參數(shù)包括:
-d:表示以“守護(hù)模式”執(zhí)行/root/run.sh腳本,此時(shí) Tomcat 控制臺(tái)不會(huì)出現(xiàn)在輸出終端上。
-p:表示宿主機(jī)與容器的端口映射,此時(shí)將容器內(nèi)部的 8080 端口映射為宿主機(jī)的 58080 端口,這樣就向外界暴露了 58080 端口,可通過(guò) Docker 網(wǎng)橋來(lái)訪問(wèn)容器內(nèi)部的 8080 端口了。
-v:表示需要將本地哪個(gè)目錄掛載到容器中,格式:-v <宿主機(jī)目錄>:<容器目錄>
--name:表示容器名稱,用一個(gè)有意義的名稱命名即可。
在瀏覽器中,輸入宿主IP和端口號(hào),即可訪問(wèn) 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 運(yùn)行環(huán)境的方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
docker部署蝸牛影院系統(tǒng)詳細(xì)流程分析
這篇文章給大家介紹docker部署蝸牛影院系統(tǒng),在部署項(xiàng)目時(shí)系統(tǒng)硬件配置是CPU2核以上,內(nèi)存8G,詳細(xì)給大家介紹了安裝流程,對(duì)docker部署蝸牛電影院系統(tǒng)感興趣的朋友跟隨小編一起看看吧2021-05-05cgroup?blkio子系統(tǒng)對(duì)容器的讀寫限速詳解
這篇文章主要為大家介紹了cgroup?blkio子系統(tǒng)對(duì)容器的讀寫限速詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08.NET?6?從0到1使用Docker部署至Linux環(huán)境超詳細(xì)教程
這篇文章主要介紹了.NET?6?從0到1使用Docker部署至Linux環(huán)境,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05docker通過(guò)Dockerfile修改鏡像中tomcat的端口
8080端口會(huì)經(jīng)常出現(xiàn)被占用的情況,本文主要介紹了docker通過(guò)Dockerfile修改鏡像中tomcat的端口,具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10Docker使用Calico網(wǎng)絡(luò)模式配置及問(wèn)題處理方法
這篇文章主要介紹了Docker使用Calico網(wǎng)絡(luò)模式配置及問(wèn)題處理,設(shè)計(jì)思想是Calico不使用隧道或者NAT來(lái)實(shí)現(xiàn)轉(zhuǎn)發(fā),而是巧妙的把所有二三層流量轉(zhuǎn)換成三層流量,并通過(guò)host上路由配置完成跨host轉(zhuǎn)發(fā),需要的朋友可以參考下2022-11-11