【Docker】手动构建 OracleJDK11 镜像

docker的官方jdk镜像为openjdk(如下图),目前jdk的长期支持版(LTS)有8、11、17,但大多使用的还是8(尤其是国内公司),我自己做项目一般喜欢用11,如果项目开发使用的是jdk11,Dockerfile中就写FROM的时候就要选择jdk11的image了,可以通过docker search查找别人构建好的jdk11镜像,也可以自己制作镜像,这里我们自己构建,方法如下
【Docker】手动构建 OracleJDK11 镜像_第1张图片

1 选择JDK的基础镜像,这里我选用Oracle的(openjdk、graalvmjdk均可),从Oracle官网下载JDK11的tar包,不要下成.zip的了
在这里插入图片描述
2 上传到linux服务器并创建一个Dockerfile文件,任意位置均可,最好和Dockerfile一个路径下,这样不用build时用-f指定Dockerfile的位置
在这里插入图片描述
3 编写Dockerfile文件,这个才是重点
内容如下:

# 建立一个新的镜像文件,配置模板:新建立的镜像是以centos为基础模板
# 因为jdk必须运行在操作系统之上
FROM centos:7.9.2009

# 维护者
MAINTAINER author <[email protected]>

# 创建一个新目录来存储jdk文件
RUN mkdir /usr/local/java

#将jdk压缩文件复制到镜像中,它将自动解压缩tar文件
ADD jdk-11.0.10_linux-x64_bin.tar.gz /usr/local/java/

# 设置时区
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

# 设置环境变量
ENV JAVA_HOME /usr/local/java/jdk-11.0.10
ENV PATH $JAVA_HOME/bin:$PATH

# VOLUME 指定了临时文件目录为/tmp
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp 

4 将Dockerfile文件转为镜像

docker build -t java:11 .

-f:指定要使用的Dockerfile路径;

--tag, -t: 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。

5 验证jdk版本(可略)
首先查看刚才构建的镜像
【Docker】手动构建 OracleJDK11 镜像_第2张图片
运行该镜像
在这里插入图片描述
查看jdk版本,是11(具体是11.0.10,和之前下载的tar文件名中版本一致),版本无误
在这里插入图片描述
完成!可以愉快的使用Oracle JDK11了

你可能感兴趣的:(Docker,docker,java)