一、基于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
1、以centos7进行封装
#cat dockerfile
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 admin@amd5.cn #解压项目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/