1. 程式人生 > >如何使用Dockerfile構建Tomcat映象並部署war

如何使用Dockerfile構建Tomcat映象並部署war

我們都知道Docker構建一個映象有兩種方式:

使用`docker commit`命令
使用`Dockerfile`檔案和`docker build`命令

那麼這兩種方式有何區別呢?

相同點:底層實現上一樣,最終都是通過`docker commit`生成映象;
不同點:通過`Dockerfile`生成映象,能夠實現映象文件化,使得映象可讀且易維護;
通過`docker build`生成映象則相反,不能實現映象文件化。

所以這篇文章採用Dockerfile來構建 :D

0x02準備工作

建立目錄

 

$ mkdir tomcat && cd tomcat # 建立一個目錄來存放所需檔案

 

$ touch Dockerfile && vi Dockerfile # 編寫Dockefile

 

 

Dockerfile (Tomcat其他版本

 
 
 
FROM tomcat:7-jre7 # tomcat7 + jre 7
MAINTAINER "errorlife <[email protected]>" # 維護者
CMD ["catalina.sh", "run"] #啟動tomcat shell執行程式
 
 

0x03 構建映象

構建映象

$ sudo docker build -t errorlife/tomcat . 
# "-t",--tag,為當前映象命名:errorlife/tomcat
# ".", 指代當前目錄

執行映象

$ sudo docker run -d -p 8080:8080 errorlife/tomcat
# -d,--detach=false         指定容器運行於前臺還是後臺(-d即後臺) 
# "-p",--port,指定宿主機的8080埠繫結到映象暴露的8080埠

執行結果

  1. 你可以使用curl命令確定是否正確部署成功

    $ curl http://docker.steffan.cn:8080/
    
  2. 使用瀏覽器訪問http://ip:8080/

    tomcat

當你見到熟悉的湯姆貓的時候,就證明你構建成功了。

部署war包

  1. war包上傳到與Dockerfile檔案同一目錄(即tomcat)
    我使用的是
    WinSCP
    ,個人覺得好用到不行=。=
  2. 重新編寫Dockerfile:

    $ vi Dockerfile
    
  3. Dockerfile:

     
       
       
    FROM tomcat:7-jre7
    MAINTAINER "errorlife <[email protected]>"
    ADD dockertest.war /usr/local/tomcat/webapps/ #將war包新增進webapps中
    CMD ["catalina.sh", "run"] #啟動tomcat shell執行程式
    
     

      

     
  4. 執行結果
    hello,errorlife!

0x04 其他配置檔案

應用場景

由於一些專案需要修改tomcat的context.xml,setting.xml,tomcat-user.xml等,還有一些tomcat的lib包,甚至是新增一些獨有的授權檔案,那麼也應該在dockerfileadd進去,而不是直接放到Linux的檔案管理系統中。

Show一下我的Dockerfile

FROM tomcat:7-jre7
MAINTAINER "errorlife <[email protected]>"

ADD settings.xml /usr/local/tomcat/conf/
ADD tomcat-users.xml /usr/local/tomcat/conf/
ADD config/license.xml 

ADD classes12.jar /usr/local/tomcat/lib
ADD ojdbc6.jar /usr/local/tomcat/lib
ADD oracle-jdbc-10.2.jar /usr/local/tomcat/lib
ADD context.xml /usr/local/tomcat/conf/
ADD xxx.war /usr/local/tomcat/webapps/
CMD ["catalina.sh", "run"]