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:空间小,绝大部分项目都能正常使用
不过,还是要自行测试,再决定使用哪个
存在的坑
- oracleJDK存在闭源的情况,dockerhub貌似没有官方的jdk,大部分都是个人制作上传。除非是自己编写的,否则最好不要使用,可能存在风险。
- 不同的基础镜像,配置时区存在很大的差别,有的配置非常复杂,有的非常简单。
- jdk和jre的区别
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库