如何使用Dockerfile構建Tomcat映象並部署war
阿新 • • 發佈:2018-11-29
我們都知道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埠
執行結果
-
你可以使用
curl
命令確定是否正確部署成功$ curl http://docker.steffan.cn:8080/
-
使用瀏覽器訪問http://ip:8080/
當你見到熟悉的湯姆貓的時候,就證明你構建成功了。
部署war包
- 將war包上傳到與
Dockerfile
檔案同一目錄(即tomcat)
我使用的是 -
重新編寫Dockerfile:
$ vi Dockerfile
-
Dockerfile:
FROM tomcat:7-jre7 MAINTAINER "errorlife <[email protected]>" ADD dockertest.war /usr/local/tomcat/webapps/ #將war包新增進webapps中 CMD ["catalina.sh", "run"] #啟動tomcat shell執行程式
0x04 其他配置檔案
應用場景
由於一些專案需要修改tomcat的context.xml
,setting.xml
,tomcat-user.xml
等,還有一些tomcat的lib包
,甚至是新增一些獨有的授權檔案
,那麼也應該在dockerfile
中add
進去,而不是直接放到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"]