1. 程式人生 > >使用Dockerfile檔案構建基於centOS系統的tomcat映象

使用Dockerfile檔案構建基於centOS系統的tomcat映象

上一篇文章的基本做法是通過centOS的官方映象啟動一個容器(上篇文章中圖片是直接ctl+v貼上的,現在不見了不想重新弄),然後進入到容器中,手動敲命令安裝JDK跟tomcat,這個跟在linux下搭建沒有什麼區別,只是用來熟悉docker命令。使用Dockerfile構建映象才是重要的東西。

以下是Dockerfile的內容:

#基礎映象

FROM centos

#維護人員資訊

MAINTAINER weigs "[email protected]"

#設定工作目錄,這個命令是用來切換工作目錄的,相當於cd命令
WORKDIR /home

#安裝JDK

#建立JDK目錄,等一下的JDK安裝到這個目錄

RUN mkdir JDK

#上篇文章中已經下載了jdk,為了節省時間我這裡使用COPY命令將宿主機中的jdk壓縮包複製到映象中,這樣做存在的問題是使用Dockerfile建立映象的宿主機必須在對應的路

#徑下有這個包。我這裡的包和Dockerfile檔案在同一個目錄下,原始檔的路徑需要是Dockerfile檔案所在目錄(上下文根目錄)的相對路徑

#也可以使用wget、 apt-get等命令線上下載

COPY jdk-8u112-linux-x64.tar.gz /home/

#解壓複製到映象中的jdk壓縮包,完成後刪除,RUN命令可以使用 && 將兩條命令放到一起,減少映象的層數

RUN tar zxf /home/jdk-8u112-linux-x64.tar.gz -C /home/JDK && rm -rf /home/jdk-8u112-linux-x64.tar.gz

#設定環境變數
ENV JAVA_HOME /home/JDK/jdk1.8.0_112
ENV PATH $PATH:$JAVA_HOME/bin


#安裝tomcat,同JDK
RUN mkdir Tomcat 
COPY apache-tomcat-8.0.39.tar.gz /home/
RUN tar zxf /home/apache-tomcat-8.0.39.tar.gz -C /home/Tomcat && rm -rf /home/apache-tomcat-8.0.39.tar.gz

#暴露tomcat的內部埠,如果沒有修改tomcat的配置檔案的話,預設是8080埠

EXPOSE 8080

#啟動容器時,執行指令碼檔案啟動Tomcat並持續輸出日誌,防止容器退出。

ENTRYPOINT /home/Tomcat/apache-tomcat-8.0.39/bin/startup.sh && tail -f /home/Tomcat/apache-tomcat-8.0.39/logs/catalina.out

以上是Dockerfile的內容。

執行命令構建映象

sudo docker build -t weigs/tomcat /home/

-t的意思是將後面的內容作為構建映象的標籤,方便記憶跟檢索,好像不允許大寫字母。

/home/是指Dockerfile檔案在這個目錄下,如果Dockerfile檔案在執行命令的當前目錄可以用英文句號.表示

構建過程如下圖,每執行一條命令都會生成一個映象並快取:


使用sudo docker images -a可以檢視到這些快取的映象。


執行映象,將宿主機的80埠對映到視窗的8080也就是tomcat監聽的埠,這樣直接訪問宿主機就可以訪問到tomcat的主頁了。

sudo docker -it --name filetomcat -p 80:8080 weigs/tomcat8 /bin/bash

由於增加了輸出tomcat日誌的指令,可以看到如下:


啟動完成後,在瀏覽器中訪問宿主機的ip+埠,就可以訪問通了