JDK17/11镜像制作-保姆级教程

本文介绍了如何从Oracle下载并解压JDK17,制作JRE以减少体积,然后创建一个基于Ubuntu的Dockerfile,配置Java环境,执行Docker构建,启动容器,以及保存和下载制作后的镜像。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

获取JDK17 

PS:下面是获取jdk11的地址

Java Downloads | Oracle 中国

wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz

解压JDK 

tar -zxvf jdk-17_linux-x64_bin.tar.gz

制作JRE

由于jdk的体积比较大,可以使用jre来作为运行环境,jdk1.8及以前版本,自带jre,jdk9以后不再提供jre,需要自己制作。
jlink是通过按模块打包的,但是由于目前很多库还不是按模块打包的,所以我们无法知道项目里面都用了那些模块。只好将所有的模块进行打包。这样避免以后出现缺失模块导致应用报错的问题。

PS:制作jdk11的时候使用

 bin/jlink --module-path jmods --add-modules ALL-MODULE-PATH  --compress=2 --strip-debug --output jre11.0.25

 bin/jlink --module-path jmods --add-modules ALL-MODULE-PATH  --compress=2 --strip-debug --output jre17

 

制作dockerfile 

# 继承某个基础镜像
FROM ubuntu:latest
# 作者
MAINTAINER Arvin

#更新软件源
RUN apt-get update
#安装字体支持
RUN apt-get install fontconfig -y
#清理缓存
RUN apt-get clean

#在windows环境下构建,将/usr/share/zoneinfo/Asia/Shanghai拷贝到本地目录
COPY ./Shanghai /etc/localtime

#setup language 解决中文乱码
#设置中文支持
ENV LANG C.UTF-8
#解压jdk并删除lib目录下的源码
COPY ./jre17 /usr/local/jre17
#授执行权限
RUN chmod -R 750 /usr/local/jre17/bin

#setup java env
ENV JAVA_HOME=/usr/local/jre17
ENV PATH=$PATH:$JAVA_HOME/bin
ENV CALSSPATH=$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

 执行构建

## 和dockerfile同目录执行
docker build -t jre17:unbuntu .

启动容器 

docker run -di --name jre17 -d jre17:unbuntu

 进入容器查看

## docker exec -it 容器ID /bin/bash
docker exec -it b728775d91f8 /bin/bash

 

下载制作后的镜像 

docker save -o 镜像包  镜像名称

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值