一、基于centos7镜像制作
#wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.34/bin/apache-tomcat-8.5.34.tar.gz
#wget http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz
#mkdir /tmp/docker-jdk
#tar -zxf apache-tomcat-8.5.34.tar.gz -C /mp/docker-jdk/
#tar -zxf jdk-8u181-linux-x64.tar.gz -C /mp/docker-jdk/
#cd /tmp/docker-jdk
#cat dockerfile
1、以centos7进行封装
FROM centos:7
#创建者
MAINTAINER TangCongJiang
#复制jdk到镜像&&复制Tomcat到镜像
COPY jdk1.8.0_181 /usr/local/jdk/
COPY apache-tomcat-8.5.34 /usr/local/tomcat-8.5/
#设置环境变量
ENV JAVA_HOME=/usr/local/jdk \
CLASSPATH=.:${JAVA_HOME}/lib \
CATALINA_HOME=/usr/local/tomcat-8.5 \
PATH=${JAVA_HOME}/bin:$CATALINA_HOME/bin:$PATH
#开放端口
EXPOSE 8080
#执行命令
CMD [ "/bin/bash","-c","${CATALINA_HOME}/bin/catalina.sh run" ]
2、构建镜像
#docker build -t java/tomacat/centos:1.8.0_181 .
#运行
#docker run -d -p 8080:8080 --name myjava jdk/centos:1.8.11
二、基于alpine-glibc制作
#wget http://download.oracle.com/otn-pub/java/jdk/8u192-b12/750e1c8617c5452694857ad95c3ee230/jre-8u192-linux-x64.tar.gz
#wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.34/bin/apache-tomcat-8.5.34.tar.gz
#mkdir docker-jre
#tar -zxf jre-8u192-linux-x64.tar.gz -C docker-jre/
#tar -zxf apache-tomcat-8.5.34.tar.gz -C docker-jre/
#cd docker-jre/jre1.8.0_192
1、删除jre根目录无用的文件
# rm -rf COPYRIGHT LICENSE README release THIRDPARTYLICENSEREADME.txt THIRDPARTYLICENSEREADME-JAVAFX.txt Welcome.html
2、精简jre
#rm -rf lib/plugin.jar \
lib/ext/jfxrt.jar \
bin/javaws \
lib/javaws.jar \
lib/desktop \
plugin \
lib/deploy* \
lib/*javafx* \
lib/*jfx* \
lib/amd64/libdecora_sse.so \
lib/amd64/libprism_*.so \
lib/amd64/libfxplugins.so \
lib/amd64/libglass.so \
lib/amd64/libgstreamer-lite.so \
lib/amd64/libjavafx*.so \
lib/amd64/libjfx*.so
#cd apache-tomcat-8.5.34
#rm -rf BUILDING.txt CONTRIBUTING.md LICENSE NOTICE README.md RELEASE-NOTES RUNNING.txt
#rm -rf webapps/{docs,examples,host-manager,manager,ROOT/*}
3、新建jsp探针进行访问测试,探针网上有很多,这里就不提供了
#vim webapps/ROOT/index.jsp
4、以alpine-glic进行构建
# cat dockerfile
#以alpine-glic进行构建
FROM frolvlad/alpine-glibc
#创建者
MAINTAINER TangCongJiang
#复制jre到镜像&&复制Tomcat到镜像
COPY jre1.8.0_192 /usr/local/java/
COPY apache-tomcat-8.5.34 /usr/local/tomcat-8.5/
#设置环境变量
ENV JAVA_HOME=/usr/local/java \
CLASSPATH=.:${JAVA_HOME}/lib \
CATALINA_HOME=/usr/local/tomcat-8.5 \
PATH=${JAVA_HOME}/bin:$CATALINA_HOME/bin:$PATH
#开放端口
EXPOSE 8080
#执行命令
CMD [ "/bin/sh","-c","${CATALINA_HOME}/bin/catalina.sh run" ]
5、构建镜像
#docker build -t java/tomcat:1.8.0_192 .
#docker run -d -p 8000:8080 --name myjava java/tomcat:1.8.0_192
6、多阶构建
#cat dockerfile
#以构建的Tomcat Java基础镜像构建
FROM hub.amd5.cn/java/tomcat:1.8.0_192 as build
#创建者
MAINTAINER [email protected]
#解压项目war包
COPY *-api-1.0-SNAPSHOT.war $CATALINA_HOME/webapps/
RUN rm -rf $CATALINA_HOME/webapps/ROOT/* \
&& unzip $CATALINA_HOME/webapps/*-api-1.0-SNAPSHOT.war -d $CATALINA_HOME/webapps/ROOT/
#从上面构建的文件复制war包解压的文件
FROM hub.amd5.cn/java/tomcat:1.8.0_192 as prod
RUN rm -rf $CATALINA_HOME/webapps/ROOT/*
COPY --from=0 $CATALINA_HOME/webapps/ROOT/ $CATALINA_HOME/webapps/ROOT/