阿汤博客-承接中小企业服务器维护和网站维护,有意者可以联系博主!

docker封装java/tomcat最小镜像

运维文档 283℃ 0评论

一、基于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

docker封装java/tomcat最小镜像

docker封装java/tomcat最小镜像

二、基于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

docker封装java/tomcat最小镜像

docker封装java/tomcat最小镜像

docker封装java/tomcat最小镜像


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/

转载请注明:阿汤博客 » docker封装java/tomcat最小镜像

喜欢 (0)or分享 (0)