Docker镜像jdk制作打包(各tag版本说明)

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第18天,点击查看活动详情


1.写在前面

很多时候,我们的服务,要使用云原生部署,那就少不了与docker镜像打交道。

一般来说,我们的springboot项目,打成docker镜像包,也是很方便了。一个Dockerfile文件就搞定的事。

那我们的springboot项目,运行需要jdk环境,那我们的基础镜像,就应该是一个有jdk环境的docker镜像。

所以我们今天来讲讲,如何制作一个jdk基础docker镜像包。

当然,我们也可以上docker hub仓库,直接拉别人制作好的镜像包。

例如这些:docker hub地址

image.png

  • 执行pull命令:

image.png

  • pull成功的结果如下:

image.png

这里,要注意hub仓库上面的226.01MB,但最终的size526MB

这是因为hub仓库会经过压缩处理,最终的大小以pull下来的size为准。

2.jdk的tag说明

image.png

官方地址

openjdk:8u201-jre-alpine3.9(表示jre环境)

openjdk:8u201-jdk-alpine3.9(表示jdk环境)

  • alpine关键字

以openjdk:8u201-jre-alpine3.9这个tag为例,表明镜像的操作系统是alpine linuxalpine镜像的大小是5M左右,因此以alpine作为基础镜像构建出的openjdk镜像也很小。


image.png

官方地址

openjdk:8u312-slim

  • slim关键字

以openjdk:8u312-slim这个tag为例,表明当前的jre并非标准jre版本,而是headless版本,该版本的特点是去掉了UI、键盘、鼠标相关的库,因此更加精简,适合服务端应用使用,官方的建议是除非有明确的体积限制是再考虑使用该版本。


image.png

官方地址

openjdk:18-ea-jdk

  • ea关键字

以openjdk:18-ea-jdk这个tag为例,ea的意思是Early Access,这里代表jdk18正是发布之前的预览版本,该版本带有新特性并且修复了若干bug,但毕竟是预览版,质量还未达到release要求,不推荐生产环境使用。


3.制作自己的jdk镜像

上面说到,我们可以拉别人制作好的镜像,但今天,咋们还是自己来搞一把。

毕竟自己折腾一下,能加深我们的印象,也能提高我们的技能,我们,也能自己制作镜像。

3.1 Dockerfile

FROM centos:centos7
ADD jdk-8u201-linux-x64.tar.gz /opt/soft/
ENV JAVA_HOME /opt/soft/jdk1.8.0_201
ENV CLASSPATH .:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
ENV PATH $JAVA_HOME/bin:$HOME/bin:$HOME/.local/bin:$PATH
CMD ["java","-version"]
复制代码

基础镜像,我们选择centos7

image.png

官方地址

centos:centos7

  • jdk-8u201-linux-x64.tar.gz是我们在jdk官网下载的jdk包

官方下载地址

image.png

这里要说明一下:

x64i586(适合linux内核是amd的,例如:centos、window)

arrch64arm(适合linux内核是arm的,例如:有些unbntu)

可能说得不是很对,轻点喷!!!

image.png

image.png

3.2 build.sh

  • 执行命令构建,并push到自己的harbor仓库
docker build -t llsydn:jdk8 -f ./Dockerfile .
docker push llsydn:jdk8
docker rmi llsydn:jdk8
复制代码

执行

./build.sh
复制代码

好了,以上就是我个人的实操了。

个人理解,可能也不够全面,班门弄斧了。

好了,今天就先到这里了!!!^_^

如果觉得有收获的,帮忙点赞、评论、收藏一下呗!!!

image.png

猜你喜欢

转载自juejin.im/post/7107820641885585444
今日推荐