5

openjdk镜像的tag说明

 1 year ago
source link: https://blog.51cto.com/zq2599/5717921
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

欢迎访问我的GitHub

这里分类和汇总了欣宸的全部原创(含配套源码): https://github.com/zq2599/blog_demos

  • 先来聊聊为什么会用到openjdk镜像。

关于java应用的docker镜像

  • 将java应用作成docker镜像时,需要镜像中带有jdk或者jre环境,通常有三种情况:
  1. 在Dockerfile中加入安装jdk环境的脚本;
  2. 镜像中只有应用jar包,启动容器时通过数据卷映射(-v参数)将宿主机的jdk文件夹映射到容器内;
  3. 使用带有jdk的镜像作为基础镜像;

三种方式各有优劣

  • 上述三种方式各有优劣:

  • 第一种,完全自己动手,可控性强,但增加了Dockerfile编写的工作量,脚本质量要自己保证;

  • 第二种,要求宿主机预先部署jdk,增加了宿主机工作量;

  • 第三种,相对工作量小一些,如果找的基础镜像不合适,会导致做成的镜像体积过大,或者多了些不需要的内容;

  • 今天要聊的话题,就是如果使用第三种方式镜像选择怎么选;

基础镜像的选择

  • 去hub.docker.com上搜索jdk官方镜像,关键字 openjdk ,可以搜到官方镜像,点进详情页后寻找我们常用的jdk8的镜像,发现有很多个,如下图:

    openjdk镜像的tag说明_docker
  • 如此多的的tag,我们又该如何选择呢,接下来就来分析一下吧;

stretch关键字

  • 8-jre-stretch 这个tag为例,其中的stretch表明这个镜像的操作系统是debian9,这是debian的一个稳定版本,官方信息如下,地址是: https://wiki.debian.org/DebianStretch

    openjdk镜像的tag说明_linux_02
  • 类似的标签还有 jessie ,这是debian的上一个稳定版本:

    openjdk镜像的tag说明_linux_03

alpine关键字

  • 13-ea-19-jdk-alpine3.9 这个tag为例,其中的alpine表明镜像的操作系统是alpine linux,alpine linux本身很小,alpine镜像的大小是5M左右,如下图,因此以alpine作为基础镜像构建出的openjdk镜像也很小:
    openjdk镜像的tag说明_docker_04

oraclelinux7关键字

  • 13-ea-oraclelinux7 这个tag为例,其中的oraclelinux7表明镜像的操作系统是Oracle Linux 7,从jdk12开始,openjdk官方开始提供基于Oracle Linux 7的jdk镜像;

slim关键字

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

ea关键字

  • 13-ea-19-jdk-alpine3.9 这个tag为例,其中的ea的意思是"Early Access",这里代表jdk13正是发布之前的预览版本,该版本带有新特性并且修复了若干bug,但毕竟是预览版,质量还未达到release要求,不推荐生产环境使用;

  • 至此,常见的tag关键字已经弄清楚了,在您面对各种tag的官方镜像时,希望本文能给您提供一些参考,更多详情请参考官方文档:
     https://github.com/docker-library/docs/blob/d4f015a4a99883c6b8691ec6aaf24a74cd02916a/openjdk/README.md

欢迎关注51CTO博客:程序员欣宸

 学习路上,你不孤单,欣宸原创一路相伴…


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK