1. 程式人生 > >Docker搭建Java Web環境(Centos6.8+JDK8+tomcat8)

Docker搭建Java Web環境(Centos6.8+JDK8+tomcat8)

上一篇blog分享了怎麼利用centos伺服器安裝docker容器,簡單介紹了下docker的相關命令及例項。

就想著通過docker搭建一個適合Java執行的平臺,結合網上的資料,最終順利完成。

一、在docker中pull centos

為了與原有的虛擬機器區分開來,這裡我們下載用centos6.8 64位的環境。

原有虛擬機器環境:


利用docker查詢一下centos映象資訊:


可以看到,在Docker中,可以pull的centos已經更新到最新的7.3版本了。

我們這裡pull一下centos6.8。

相關命令:docker pull daocloud.io/library/centos:6.8 下載完畢後用docker images檢視一下。


二、啟動centos容器(容器是在映象的基礎上來執行的,一旦容器啟動了,我們就可以登入到容器中

使用以下命令即可啟動容器:docker run -i -t -v /root/software/:/mnt/software/ 80e46367f846 /bin/bash

解釋:

這條命令比較長,我們稍微分解一下,其實包含以下三個部分:docker run <相關引數> <映象 ID> <初始命令>

其中,相關引數包括:

-i:表示以“互動模式”執行容器

-t:表示容器啟動後會進入其命令列

-v:表示需要將本地哪個目錄掛載到容器中,格式:-v <宿主機目錄>:<容器目錄>

假設我們的所有安裝程式都放在了宿主機的/root/software/目錄下,現在需要將其掛載到容器的/mnt/software/目錄下。

也就是說:/root/software/是本來虛擬機器的真實目錄,其對應的容器中的目錄為:/mnt/software/

那麼虛擬機器中/root/software/下存放的檔案資訊,到容器的/mnt/software/能對應的看到檔案資訊。

如圖,/root/software/下有tomcat、jdk、nginx的檔案:


我們在來看進入容器後,在容器的/mnt/software/目錄下的檔案資訊:


檢視容器中系統資訊:


可以看到檔案是一致的,系統是centos 6.8版本,但是容器中的系統時間有問題,導致二個圖片上顯示的資訊有區別,這個無關緊要,繼續~

三、安裝配置jdk+tomcat

搭建java web環境,無非就是jdk+tomcat(也可以是其他,這裡選用tomcat),並以opt目錄作為安裝目錄。

之行建立/opt/jdk、/opt/tomcat目錄

1.JDK:

命令:

tar -zxvf jdk-8u101-linux-x64.tar.gz 

cd jdk1.8.0_101/

mv * /opt/jdk/

配置JDK環境:

vi ~/.bashrc

在最後加入以下資訊:

export JAVA_HOME=/opt/jdk 
export PATH=$JAVA_HOME/bin:$PATH  
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

最後用:source ~/.bashrc 命令重新載入一下,讓環境變數生效。通過java -version可以檢測一下。



2.tomcat:

相關命令:

tar -zxvf apache-tomcat-8.5.5.tar.gz

cd apache-tomcat-8.5.5

mv * /opt/tomcat/

可以通過啟動/opt/tomcat/bin/startup.sh來測試啟動。


3.編寫java web容器執行指令碼

需要編寫一個執行指令碼,當啟動容器時,執行該指令碼,啟動 Tomcat,比如/root/run.sh作為啟動檔案,具體過程如下:

建立指令碼:vi /root/run.sh

編輯指令碼,將以下內容寫進去後儲存:

#!/bin/bash

source ~/.bashrc

sh /opt/tomcat/bin/catalina.sh run

可能會有童鞋會問,為啥不用startup.sh,其實startup.sh的原始碼就是執行catalina.sh start的。

為執行指令碼新增執行許可權:

chmod u+x /root/run.sh

最後退出容器,用exit命令即可。

四、配置容器

docker ps檢視正在執行的容器:


當退出容器後,則可以通過docker ps -a 來查詢所有的容器:


容器ID為69e8f5dcba1b的是我們剛才建立的容器資訊。

下一步,使用建立新映象的命令,來根據某個“容器ID”來建立一個新的映象,命令如下:

docker commit 69e8f5dcba1b mine/javaweb:1.0


自動返回一個序列ID,標識生成已經成功了,我們再通過docker images的命令來檢視所有映象。


此時,我們可以看到最新建立的映象“mine/javaweb”,版本標籤資訊為1.0,映象ID為:5e4e37068614

正如上面所描述的那樣,我們可以通過“映象名”或“映象 ID”來啟動容器,與上次啟動容器不同的是,我們現在不再進入容器的命令列,而是直接啟動容器內部的 Tomcat 服務。此時,需要使用以下命令:

docker run -d -p 58080:8080 --name smart smart/javaweb:0.1 /root/run.sh

不知道為什麼剛才一邊截圖一邊寫,等到啟動的時候,發現啟動失敗,於是又按照上面的配置過程,重新生成了下(換了個容器名字smart),步驟過程都沒有變化,這次啟動成功了。

映象“smart/javaweb”,版本標籤資訊為0.1,映象ID為:294d7142accc



通過58080埠訪問tomcat,可以正常訪問,如下:


新手一枚,歡迎拍磚~ ~ ~