天天看點

docker(12):alpinelinux安裝tomcat1,tomcat2,整理下tomcat3,打包tomcat4,測試啟動4,總結

使用alpine環境自己打包安裝一個tomcat環境。

使用的是openjdk的jre,目标就是系統盡量的小。

依賴的東西盡量的少。建構tomcat最少需要一個jre。

使用的openjdk8的jre,才106mb。已經非常的小了。

<a href="http://blog.csdn.net/freewebsys/article/details/53744348">http://blog.csdn.net/freewebsys/article/details/53744348</a>

下載下傳tomcat:

<a href="http://tomcat.apache.org/download-80.cgi">http://tomcat.apache.org/download-80.cgi</a>

tomcat最新的版本是8.5.9 ,tomcat9 還在測試中,生産環境使用tomcat8就行了,性能足夠了。

首先解壓縮,然後把tomcat裡面的亂七八糟的東西删除下。

什麼root,manager,user啥的,防止别人獲得管理權限。

然後修改下service.xml,設定root是 / 通路。

其中删除了jrememoryleakpreventionlistener,關閉了tomcat的一個小時一次的full gc操作。

正常系統上線,記憶體一般都設定的很大不用擔心這個。

<a href="http://gao-xianglong.iteye.com/blog/2171441">http://gao-xianglong.iteye.com/blog/2171441</a>

vi dockerfile

注意這裡依賴openjre8 的鏡像,要提前打好。

建構:

這樣打包的tomcat 隻有 114.8 mb 。非常的小呢。

建立檔案夾:

寫一個web.xml 配置

建立臨時檔案夾,log檔案夾,temp檔案夾,并設定權限。

在做tomcat基礎包的時候,把root檔案夾空出來,以後的應用要使用的時候再加上。

啟動tomcat:

啟動tomcat并綁定端口8080,映射目錄/data/tomcat/root 作為主目錄,同時映射logs和temp檔案夾。

這樣直接可以看tomcat的日志了。

測試下能通路成功。

進入docker容器檢視:

docker exec -it tomcat-test bash

bash-4.3# df

docker(12):alpinelinux安裝tomcat1,tomcat2,整理下tomcat3,打包tomcat4,測試啟動4,總結

特别注意一點。有的是docker啟動的時候并沒有帶動tomcat啟動,而是直接退出了。

這個并不是docker的問題。是因為使用的指令不對。要使用 catalina.sh run 這個參數,這個指令一直執行。

如果使用startup.sh的時候就上背景了。docker以為有問題了。shell執行完了,就直接退出了。然後就不能-d執行了。

也就是說,使用entrypoint 和cmd 指令必須是一個死循環一直執行的指令。

entrypoin和cmd的差別就是cmd可以被替換。

要是使用 docker run -it demo/tomcat-base bash這個指令執行兩個不同包。

entrypoint的包tomcat會啟動,而cmd打的包,tomcat被shell替換了。不啟動。