docker封装java/tomcat最小镜像

2018年12月14日17:10:38 发表评论 5,183 ℃

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

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 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/
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: