天天看點

docker搭建一個tomcat鏡像(自定義tomcat和jdk)

1、安裝docker

2、docker安裝完成之後,首先制作一個基礎鏡像(了解為作業系統的相關庫依賴)

       //初始沒有

docker搭建一個tomcat鏡像(自定義tomcat和jdk)

       //下載下傳一個(上面連結裡有),這裡以centos為例

     輸入指令:docker pull centos,完成後如下圖

docker搭建一個tomcat鏡像(自定義tomcat和jdk)

  3、準備制作tomcat的基礎内容(便于制作鏡像都放同一個檔案夾)

       準備内容如下圖

docker搭建一個tomcat鏡像(自定義tomcat和jdk)

       >>tomcat、jdk(jre就行了),因為我自定義了這倆内容(改過端口等等),是以我存了檔案夾

       >>run.sh,名稱随意,用來定義進入鏡像執行什麼内容,簡單說就是去啟動tomcat,然後再把檔案執行句柄交給下列的Dockerfile檔案,run.sh内容如下

#!/bin/bash
sh /opt/tomcat/bin/catalina.sh run      

       >>Dockerfile檔案,docker鏡像制作檔案,是一串指令集合,如下

FROM centos:latest  #基礎鏡像,也就是第二步準備的内容,從docker images指令檢視
MAINTAINER cc-man   #忽略
#上傳  
ADD tomcat9.0.50 /opt/tomcat/  #将自定義的tomcat檔案夾移動到鏡像中的/opt/tomcat/目錄,非特定位址根據自身源檔案(夾)和目标檔案夾确定即可
ADD jre /opt/jre/              #同理,移動jre
COPY /run.sh /root/run.sh      #同理,移動進入鏡像執行的指令集
RUN  chmod 777 /root/run.sh    #執行權限
#環境變量
ENV JAVA_HOME=/opt/jre         #同tomcat中的環境變量設定,根據tomcat和jre(或jdk)位置确定
ENV JRE_HOME=/opt/jre
ENV CATALINA_HOME=/opt/tomcat
ENV CATALINA_BASE=/opt/tomcat
ENV PATH=:$JAVA_HOME/bin:$PATH
ENV CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
ENTRYPOINT ["/root/run.sh"]    #簡單了解為進入鏡像就執行的指令,更多意義請網上搜      

 4、編譯(制作)鏡像

       執行指令

docker build -t my_tomcat:1.0 .  #表示編譯目前目錄下的内容到鏡像檔案中,其中鏡像名為my_tomcat,tag(版本)為1.0,這倆可以随意,别忘了最後有一個.表示目前目錄      
docker搭建一個tomcat鏡像(自定義tomcat和jdk)

   出現如圖内容則制作成功了。

docker搭建一個tomcat鏡像(自定義tomcat和jdk)

 5、使用某個鏡像在容器中運作

  兩個比較簡單的指令

docker run -d -p 8080:8090 my_tomcat:1.0   #-d表示背景運作,傳回容器号,跟tomcat 的startup.sh類似;-p是端口映射,鏡像中的8090映射到宿機的8080
或者
docker run -it -p 8080:8090 my_tomcat:1.0  #-it表示互動式運作,類似tomcat的catalina.sh,會輸出日志,ctrl+c退出      
docker搭建一個tomcat鏡像(自定義tomcat和jdk)

如圖表示以容器運作了,通過宿機端口(8080)來通路即可。

http:ip//8080/test/readme.txt(删掉了webapp下面的内容,新增了一個測試文本),如下圖通路成功

docker搭建一個tomcat鏡像(自定義tomcat和jdk)

6、常用指令:

docker images         #檢視鏡像
docker ps             #檢視目前運作的容器
docker rmi 鏡像id      #删除鏡像(一般删不掉是要做後面兩步驟)
docker stop 容器id     #停掉容器
docker rm 容器id       #删除容器