首先下载JDK 我的是jdk-17_linux-x64_bin.tar.gz
然后解压进入jdk目录:执行
bin/jlink --module-path jmods --add-modules java.base,java.prefs,java.xml.crypto,jdk.hotspot.agent,jdk.internal.vm.compiler.management,jdk.jpackage,jdk.net,java.compiler,java.rmi,java.xml,jdk.httpserver,jdk.jartool,jdk.jshell,jdk.nio.mapmode,java.datatransfer,java.scripting,jdk.accessibility,jdk.javadoc,jdk.jsobject,jdk.random,java.desktop,java.security.jgss,jdk.attach,jdk.jcmd,jdk.jstatd,jdk.sctp,java.instrument,java.security.sasl,jdk.charsets,jdk.internal.ed,jdk.jconsole,jdk.localedata,jdk.security.auth,java.logging,java.se,jdk.compiler,jdk.internal.jvmstat,jdk.jdeps,jdk.management.agent,jdk.security.jgss,java.management,java.smartcardio,jdk.crypto.cryptoki,jdk.internal.le,jdk.jdi,jdk.management.jfr,jdk.unsupported.desktop,java.management.rmi,java.sql,jdk.crypto.ec,jdk.internal.opt,jdk.jdwp.agent,jdk.management,jdk.unsupported,java.naming,java.sql.rowset,jdk.dynalink,jdk.internal.vm.ci,jdk.jfr,jdk.naming.dns,jdk.xml.dom,java.net.http,java.transaction.xa,jdk.editpad,jdk.internal.vm.compiler,jdk.jlink,jdk.naming.rmi,jdk.zipfs --output jre-17.0.2
制作Docker镜像
以centos:7为baseImg,Dockfile文件中内容为
# 指定基础镜像,并且必须是第一条指令 FROM centos:7 # 指明镜像的作者和电子邮件 MAINTAINER Vick "yuntop@qq.com" # 在构建镜像时,指定镜像的工作目录,之后的命令都是基于此工作目录,如果不存在,则会创建该目录 WORKDIR /usr/local/java # 将jre安装包复制到镜像中(ADD与COPY的区别:ADD复制并解压,COPY仅复制)下面用的是绝对路径 ADD jre-17_linux-x64.tar.gz /usr/local/java # 配置环境变量 ENV JAVA_HOME=/usr/local/java/jre-17.0.2 ENV CLASSPATH=.:$JAVA_HOME/lib/jrt-fs.jar ENV PATH=$PATH:$JAVA_HOME/bin # 容器启动时需要执行的命令 CMD ["java", "-version"]



