openjdk镜像的tag说明

简介: 官方的openjdk镜像有很多tag版本,本文和您一起学习常见关键字的含义,在选择镜像时可以选中更符合需要的版本

欢迎访问我的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的镜像,发现有很多个,如下图:

在这里插入图片描述

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

stretch关键字

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

在这里插入图片描述

  • 类似的标签还有jessie,这是debian的上一个稳定版本:

在这里插入图片描述

alpine关键字

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

在这里插入图片描述

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

欢迎关注阿里云开发者社区博客:程序员欣宸

学习路上,你不孤单,欣宸原创一路相伴...
相关文章
|
Docker Python 容器
查看docker search之后的所有镜像分支版本
查看docker search之后的所有镜像分支版本
4376 0
查看docker search之后的所有镜像分支版本
|
搜索推荐 前端开发 Java
在docker上编译openjdk8
在docker容器中编译openjdk源码,构建新的jdk
710 0
在docker上编译openjdk8
|
Ubuntu Java Linux
alpine Linux与基于alpine制作JDK8镜像
Docker commit 命令 1.下载基础镜像 2.使用此基础镜像创建/启动/进入容器 3.在容器安装自己需要的软件 4.将保存配置完成的容器提交成镜像 语法如下 docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] OPTIONS说明: -a :提交的镜像作者; -c :使用Dockerfile指令来创建镜像; -m :提交时的说明文字; -p :在commit时,将容器暂停。 实例:将容器a404c6c174a2 保存为新的镜像,并添加提交人信息和说明
|
Ubuntu Java 程序员
极简,利用Docker仅两行命令就能下载和编译OpenJDK11
下载OpenJDK11源码再编译它,很麻烦吗?借助docker,这些操作会变得异常简单
990 0
极简,利用Docker仅两行命令就能下载和编译OpenJDK11
|
Java Linux Shell
Dockerfile自定义镜像、CentOS安装DockerCompose及Docker镜像仓库
Dockerfile自定义镜像、CentOS安装DockerCompose及Docker镜像仓库
625 0
|
3月前
|
Docker 容器
7-13|docker build -t image-name:tag path/to/Dockerfile 这个命令具体什么意思
7-13|docker build -t image-name:tag path/to/Dockerfile 这个命令具体什么意思
|
Docker 容器
docker重命名镜像名称以及tag版本
docker重命名镜像名称以及tag版本
453 0
|
7月前
|
Docker 容器
docker build -t和docker build -f区别
参数用于指定要使用的Dockerfile的路径,允许你在不同的位置使用不同的Dockerfile来构建镜像。
127 0
|
7月前
|
开发工具 git C++
Docker-tag
Docker-tag
83 1
|
开发框架 .NET Linux
基于 Alpine 环境构建 aspnetcore6-runtime 的 Docker 镜像
apline linux 环境,构建 asp.net core 应用程序的基础镜像。--- The glow of a firefly may be faint, but when it shines, it challenges the darkness.
614 1