1、准備鏡像文件:tomcat壓縮包、jdk壓縮包,版本信息如下圖所示:
2、編寫dockerfile文件,官方命名:Dockerfile,build會自動尋找這個文件,不用 -f指定
FROM centos:7
MAINTAINER yanxiaoling572503145@qq.com
COPY readme.txt /usr/local/readme.txt
ADD jdk-8u202-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-10.0.18.tar.gz /usr/local/
RUN yum -y install vim
ENV MYPATH /usr/local
WORKDIR $MYPATH
ENV JAVA_HOME /usr/local/jdk1.8.0_202
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-10.0.18
ENV CATALINA_BASE /usr/local/apache-tomcat-10.0.18
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
EXPOSE 8080
CMD chmod 777 /usr/local/apache-tomcat-10.0.18/bin/startup.sh
CMD chmod 777 /usr/local/apache-tomcat-10.0.18/bin/version.sh
CMD /usr/local/apache-tomcat-10.0.18/bin/startup.sh && tail -f /usr/local/apache-tomcat-10.0.18/logs/catalina.out
3、構建鏡像:docker build -t diytomcat .
4、docker images 查看已構建的鏡像:
5、啟動容器並做掛載
docker run -d -p 9090:8080 --name yanxltomcat -v /home/yanxiaoling/build/tomcat/test:/usr/local/apache-tomcat-10.0.18/webapps/test -v /home/yanxiaoling/build/tomcat/tomcatlogs/:/usr/local/apache-tomcat-10.0.18/logs diytomcat
6、在宿主機訪問9090端口測試可訪問成功:curl localhost:9090
7、外網訪問也可成功:
8、發布項目:
(由於啟動容器的時候做了卷掛載,我們直接在本地編寫項目就可以發布了。)
在掛載的test目錄下mkdir WEB-INF,再寫一個簡單的web.xml文件
在test目錄下新建一個文件:index.jsp
外網訪問宿主機的9090端口的test文件夾即可訪問到index.jsp
9、若是訪問失敗,請繼續往下看:
docker attach 容器ID
進入容器內部,再運行ps -ef 查看運行的進程,確認tomcat未運行后,進入tomcat的bin目錄下,先執行chmod 777 startup.sh給startup.sh賦權,再執行./startup.sh運行下tomcat:
10、查看容器內安裝的jdk版本:進入容器內部執行命令:java -version
11、查看安裝的tomcat版本,進入tomcat安裝目錄下的bin目錄,先執行命令:chmod 777 version.sh 命令賦權,再執行./version.sh命令查看版本信息,如下圖所示,我安裝的版本是:
apache-tomcat-10.0.18
12、容器內部執行命令:curl 127.0.0.1:8080 驗證tomcat是否已運行成功。
13、在宿主機執行命令:curl localhost:9090 測試是否可訪問容器內部的tomcat,如下圖所示,訪問成功: