Docker 构建最小JDK基础镜像(基于Centos:7)

1,654 阅读1分钟

最近需要到学校实验室做私有云部署,我需要对我们的产品进行加密并且以最小包的方式提供出去,这里我们来制作一下最小JDK基础镜像,特此记录便于日后查阅。

1、下载

我们通过使用JRE来构建基础镜像,已达到最小化JDK基础镜像的目的,首先需要下载JRE(如果下载较慢可以选择下载本文附件中的JRE),传送门如下:

官方JRE下载地址

2、安装

然后解压JRE包,删除根目录下文本文件,然后删除其他不必要文件,命令如下:

#解压
tar -zxvf jre-8u161-linux-x64.tar.gz
#进入目录
cd jre1.8.0_161/
#删除文本文件
rm -rf COPYRIGHT LICENSE README release THIRDPARTYLICENSEREADME-JAVAFX.txt THIRDPARTYLICENSEREADME.txt Welcome.html
#删除其他无用文件
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

重新打包所有文件(不打包也可以,在Dockerfile里ADD这个目录即可,当前精简完jre目录大小是107M,压缩后是41M)

    $ tar -zcvf jre8.tar.gz jre1.8.0_241/

创建Dockerfile(ps:Dockerfile文件要和jre8.tar.gz在一个路径下,如果不一样,下面的ADD里面的路径要相应变化)

FROM centos:7
MAINTAINER zxzhang <andywebjava@163.com>
ADD jre8.tar.gz /usr/java/
ENV JAVA_HOME /usr/java/jre1.8.0_241
ENV PATH ${PATH}:${JAVA_HOME}/bin
WORKDIR /usr/local/oas/

执行构建命令,这里注意仓库地址和标签换成自己的,命令如下:

    $ sudo docker build -t 192.168.3.202:8088/common/java8:1.0 .

3、验证

测试运行,命令如下:

$ sudo docker run -it 192.168.3.202:8088/common/java8:1.0
# java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

到此 Docker 构建最小JDK基础镜像(基于Centos:7)介绍完成。