docker基础镜像java版本选择和推荐

背景

在编写dockerfile时,基础镜像要么太大,要么缺少jdk;dockerhub中的openjdk五花八门,不知道选择哪个

解决方案

我在项目中通常选择 openjdk作为基础镜像

FROM openjdk:11.0.11-jdk-slim

MAINTAINER mintonzhang@163.com

ENV TZ=Asia/Shanghai

RUN echo -e "${TZ}" > /etc/timezone && ln -sf /usr/share/zoneinfo/${TZ} /etc/localtime

以上是官方镜像 https://registry.hub.docker.com/_/openjdk
这个镜像比较全,而且有jre也有jdk,架构也全。

什么时候使用jdk,什么时候使用jre

jdk: 下载时会占用比较大的空间(大概多了100多M),但是如果项目中接入了Arthas(阿里在线java调试)时,必须要使用jdk,不然会报错。
jre:空间小,绝大部分项目都能正常使用
不过,还是要自行测试,再决定使用哪个

存在的坑

  1. oracleJDK存在闭源的情况,dockerhub貌似没有官方的jdk,大部分都是个人制作上传。除非是自己编写的,否则最好不要使用,可能存在风险。
  2. 不同的基础镜像,配置时区存在很大的差别,有的配置非常复杂,有的非常简单。
  3. jdk和jre的区别
posted @   minsin  阅读(3270)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示