Docker容器之最小JDK基础镜像 【转、改】
2023-02-02 11:26 方斌 阅读(756) 评论(0) 编辑 收藏 举报使用压缩包
# using alpine-glibc instead of alpine is mainly because JDK relies on glibc
FROM docker.io/jeanblanchard/alpine-glibc
# author
MAINTAINER fb
# A streamlined jre
ADD jre8.tar.gz /usr/java/jdk/
# set env
ENV JAVA_HOME /usr/java/jdk
ENV PATH ${PATH}:${JAVA_HOME}/bin
# run container with base path:/opt
WORKDIR opt
使用文件夹
# using alpine-glibc instead of alpine is mainly because JDK relies on glibc
FROM docker.io/jeanblanchard/alpine-glibc
# author
MAINTAINER fb
# A streamlined jre
ADD jre1.8.0_361/ /usr/java/jdk/
# set env
ENV JAVA_HOME /usr/java/jdk
ENV PATH ${PATH}:${JAVA_HOME}/bin
# run container with base path:/opt
WORKDIR opt
删除无用文件后,使用文件夹和压缩文件,大小无变化
[root@localhost docker-images]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ff/jre8 8.0.361.3 8f945fcc7504 27 minutes ago 134MB
ff/jre8 8.0.361.2 811aa77a30b6 31 minutes ago 134MB
ff/jre8 8.0.361 e1ac1aba4552 35 minutes ago 281MB
一、说明
1、使用的是Oracle的JRE不是openjdk。
2、因为java依赖glibc,所以基础镜像使用的是alpine-glibc而非alpine,alpine-glibc大概是11.1M。
二、制作
1、首先下载jre,下载地址是https://www.java.com/en/download/manual.jsp,大概是77M。
2、解压jre包,删除根目录下文本文件,然后删除其他不必要文件。
解压
tar xvcf jre-8u161-linux-x64.tar.gz
进入目录
cd jre1.8.0_161/
删除文本文件
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
3、重新打包所有文件(不打包也可以,在Dockerfile里ADD这个目录即可,当前精简完jre目录大小是107M,压缩后是41M)
tar zcvf jre8.tar.gz *
4、创建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/java/jdk/
# set env
ENV JAVA_HOME usr/java/jdk
ENV PATH ${PATH}:${JAVA_HOME}/bin
# run container with base path:/opt
WORKDIR opt
5、构建(整体大小是122M)
docker build -t voole/java8:1.0 .
6、测试运行
# docker run -it voole/java8:1.0
/opt # 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)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库