MyBank 進行容器化

示例:把一個簡單的 Java Web 應用---MyBank 進行容器化。git

它包含了 Java 源代碼、JSP文件、圖片和 CSS 等靜態資源文件。github

MyBank 的項目結構是基於 Maven 的要求部署,經過 Maven 能夠編譯和構建 MyBank 的部署包---WAR包。web

和其它的應用程序同樣,MyBank 在開發過程當中,它的因此在源代碼都被上傳到配置管理庫進行版本控制,這裏所使用的配置管理服務器是 GitHub。docker

1. 安裝部署源代碼工具 Git.瀏覽器

# yum -y install git

2.從 GitHub 上下載示例的 Java 應用源代碼。tomcat

[root@master ~]# cd /opt/
[root@master opt]# git clone https://github.com/nichochen/mybank-demo-maven

3.準備編譯和構建環境。安裝應用構建所需的Java開發工具包 JDK 及構建工具 Mavenbash

# yum -y install maven

4.經過構建工具編譯及構建應用。服務器

# cd mybank-demo-maven/
[root@master mybank-demo-maven]# mvn package

構建完畢,將在 target 目錄下生成一個 WAR 包 ROOT.war.app

# ls target/
classes  maven-archiver  ROOT  ROOT.war  surefire  surefire-reports  test-classes

5.選擇知足應用運行要求的基礎容器鏡像,或者從基礎的操做系統鏡像開始安裝和構建。webapp

# docker pull tomcat:7.0.70-jre7-alpine

6.編寫 Dockerfile 。把構建好的應用部署包拷貝到發佈目錄。Dockerfile示例以下:

# cat Dockerfile 
FROM tomcat:7.0.70-jre7-alpine
ADD ./target/ROOT.war /usr/local/tomcat/webapps/mybank.war

7.執行 Docker Build 構建鏡像。把鏡像命命爲 mybank-tomcat。在沒有指定鏡像的 tag 的請求下,默認的標籤爲 latest。

# docker build -t mybank-tomcatbank-tomcat .

構建完後,能夠看見 Docker Build 生成的新鏡像

# docker images | grep mybank-tomcat
mybank-tomcat latest  0a46e831b130     2 days ago    150 MB

8.測試鏡像。經過 docker run 命令測試新建立的鏡像。參數 -p 8080:8080 把容器的 8080端口映射到主機的 8080端口。

# docker run  -it  --rm   -p 8080:8080  mybank-tomcat

完成後經過瀏覽器訪問 MyBank 的主頁測試。

# oc get service
NAME        TYPE     CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
hello-openshift   ClusterIP   172.30.242.25    <none>     8080/TCP,8888/TCP   3d

image

9.推送鏡像。測試經過後,將把鏡像發佈到相應的鏡像倉庫中。

# docker tag  mybank-tomcat:latest  192.168.100.133:5000/mybank-tomcat:latest
# docker push  192.168.100.133:5000/mybank-tomcat:latest
相關文章
相關標籤/搜索