java - 谁是 openjdk docker image 的经销商

标签 java docker

我的理解是你需要有一个分销商才能使用 openjdk 之类的人(oracle openjdk,adoptopenjdk)但是在 docker repo for openjdk 如果我只使用他们的引用文档我怎么知道谁是分销商

{以下代码复制自 openjdk 官方 docker repo}

FROM openjdk:11
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
RUN javac Main.java
CMD ["java", "Main"] 

从 Java 8 迁移到 Java 11

最佳答案

都写在 docker 页面上:https://hub.docker.com/_/openjdk/

openjdk:<version>

This is the defacto image. [...] These are the suite code names for releases of Debian and indicate which release the image is based on. [...]

openjdk:<version> (from 12 onwards), [...]

Starting with openjdk:12 the default image as well as the -oracle and -oraclelinux7 variants are based on the official Oracle Linux 7 image which is provided under the GPLv2 as per the Oracle Linux End User Agreement (EULA). [...]

TL;DR:镜像由 Docker 社区维护,版本 < 12 从 Debian 或 Alpine Linux 提供 OpenJDK 构建,更高版本提供 Oracle 构建。

顺便说一下,在 Version including 8 之前,Oracle JDK 可以更自由地使用。总之,Linux 发行版构建了自己的二进制文件。 AdoptOpenJDK、Amazon Corretto 等的二进制分发版仅在那里,因为 Oracle 不再免费提供二进制构建。但如果愿意,您可以下载 OpenJDK 并自行构建。

编辑:您也可以通过 ssh 进入图像并运行 java -version

Edit2:Java 7 和支持

我想谈谈您对我的回答的评论。您特别要求使用 Java 版本 7。这个版本很旧(2011 年首次发布!),如果不支付商业支持费用,您将找不到任何长期支持。时期。 此版本也早于 Oracle 二进制文件的许可更改,因此整个 AdoptOpenJDK 论点无关紧要。

在 OpenJDK Docker Hub 页面上,您可以看到不同的图像运送 Java 7 构建,一些使用 Alpine Linux,一些使用 Debian Jessie。这些是 - 大概,我只验证了 Debian - 由该发行版构建的开源 OpenJDK 项目。因此,具有类路径异常(exception)的 GPL 应该是适用的许可证(阅读:您可以在商业上使用它)。 请注意,即使是对 Debian Jessie 的 LTS 支持也将在下个月结束:https://wiki.debian.org/LTS

这不一定是个问题,具体取决于您要在何处运行该镜像(即,面向公共(public)互联网还是面向私有(private)内部网)。

如果您必须坚持使用这么旧的 Java 版本,您几乎没有选择(也许采用现代 linux 镜像并自己构建 OpenJDK [我想这会很痛苦])。

Edit3:来自 AdoptOpenJdk 的最新版本 7 支持和 v8+

好的,所以您在评论中澄清了,您实际上并不是在寻找版本 7 的构建。 但是,我确实找到了 Azul 提供的最新且受支持的 Java 7 版本:https://hub.docker.com/r/azul/zulu-openjdk

但是您说您正在运行版本 8,希望升级到版本 11。那么我强烈推荐 AdoptOpenJDK,它是目前最流行的构建。他们提供 Docker images as well (注意:它们提供不同的 JVM:Hotspot 是默认的,强烈推荐,OpenJ9 基于 IBM 开发)

关于java - 谁是 openjdk docker image 的经销商,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62407600/

相关文章:

java - 过滤@Stateless @Webservice

docker - 如何将docker容器ip暴露给外网?

docker网络-主机模式与桥接模式-端口映射

postgresql - 从主机连接到 docker 容器中的 postgres

docker - 如何从Docker(Prisma)连接到主机数据库

docker - kubectl日志显示 'standard_init_linux.go:211: exec user process caused “no such file or directory”'

java - Spring批处理-使用多个字符作为分隔符

java - 快速搜索 arrayList 的方法

java - 带图形组件的 Swing 计时器

java - Hibernate继承,父类应该根据决策者是子类还是父类