Docker-创建最小的jdk8镜像~

问题

用centos作为基础镜像和150多M的jdk压缩来创建一个jdk镜像,发现都要500多m,这个确实有点大了。
所以下面就是如何构建最小的jdk镜像。

使用docker images 命令的时候可以看到我们的jdk真的很大
在这里插入图片描述

使用Oracle的JRE不是openjdk,并构建成Docker镜像。具体步骤如下

一:首先官网下载jre

在这里插入图片描述
大约80多M,下载结束之后上传到centos上的 /usr/local/dockerimage/smalljava8 (自定义一个目录)


二:解压jar包,并且删除不必要的文件

tar -zxvf jre-8u231-linux-x64.tar.gz​

进入目录

cd jre1.8.0_231​

删除文本文件

rm -rf COPYRIGHT LICENSE README release THIRDPARTYLICENSEREADME-JAVAFX.txtTHIRDPARTYLICENSEREADME.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​

三:重新打包所有文件

tar zcvf jre8.tar.gz *

打包之后把压缩包拷贝到 jre8 目录下,见下图

二:解压jar包,并且删除不必要的文件

四:创建Dockerfile
现在的目录结构如下:

在这里插入图片描述

进入jre8目录下,创建Dockerfile文件并写入以下内容
在这里插入图片描述

# using alpine-glibc instead of alpine is mainly because JDK relies on glibc
FROM docker.io/jeanblanchard/alpine-glibc
# author
MAINTAINER scc <shangchengcai@voole.com>
# A streamlined jre
ADD jre8.tar.gz /usr/local/dockerimage/smalljava8/jre8/
# set env
ENV JAVA_HOME /usr/local/dockerimage/smalljava8/jre8
ENV PATH ${PATH}:${JAVA_HOME}/bin
# run container with base path:/opt
WORKDIR /opt​

加粗样式


五:构建镜像

docker build -t fds/java8:1.0 .​

六:测试运行

docker run -it fds/java8:1.0​

验证是否运行成功

 docker ps
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章