如何使用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 <steffan.fan@foxmail.com>" # 維護者
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 <steffan.fan@foxmail.com>"
    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 <steffan.fan@foxmail.com>"

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"]

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM