openjdk

library/openjdk

OpenJDK的预发布/非生产环境构建版本,通常包含最新开发的功能、性能优化及安全修复,主要供开发者和测试人员在非生产环境中进行早期验证、兼容性测试与功能评估,旨在帮助发现潜在问题并反馈改进,为后续正式版本的发布奠定基础,但因未经过充分的稳定性验证,不建议用于生产系统,以避免可能的运行风险。

4.1千 次收藏下载次数: 0状态:Docker 官方镜像维护者:Docker 官方镜像仓库类型:镜像最近更新:9 天前
让 AI 帮你使用轩辕镜像?

如果你使用 DeepSeek元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。

只需在 AI 对话中先发送下面这句话即可:

请先完整阅读并严格遵守以下文档中的全部规则与要求:

https://xuanyuan.cloud/agents.md

在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。

查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AIDeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。

下载命令
点击查看

弃用通知

该镜像已正式弃用,建议所有用户尽快寻找并使用合适的替代方案。以下是部分官方镜像替代方案示例(按字母顺序排列,无优先级暗示):

  • amazoncorretto
  • eclipse-temurin
  • ibm-semeru-runtimes
  • ibmjava
  • sapmachine

更多信息可查看[docker-library/openjdk#505] 。

2022年7月后,仅早期访问版(Early Access builds,源码来自[jdk.java.net] )标签会继续更新,因为上述项目均不发布或支持此类版本。

快速参考

维护者

[Docker社区]

获取帮助途径

[Docker社区Slack] 、[Server Fault] 、[Unix & Linux] 或 [Stack Overflow]

支持的标签及对应Dockerfile链接

(关于“共享标签”与“简单标签”的区别,参见FAQ中的[“‘Shared’和‘Simple’标签有何不同?”] )

简单标签(Simple Tags)

  • [26-ea-18-jdk-oraclelinux9, 26-ea-18-oraclelinux9, 26-ea-jdk-oraclelinux9, 26-ea-oraclelinux9, 26-jdk-oraclelinux9, 26-oraclelinux9, 26-ea-18-jdk-oracle, 26-ea-18-oracle, 26-ea-jdk-oracle, 26-ea-oracle, 26-jdk-oracle, 26-oracle]

  • [26-ea-18-jdk-oraclelinux8, 26-ea-18-oraclelinux8, 26-ea-jdk-oraclelinux8, 26-ea-oraclelinux8, 26-jdk-oraclelinux8, 26-oraclelinux8]

  • [26-ea-18-jdk-trixie, 26-ea-18-trixie, 26-ea-jdk-trixie, 26-ea-trixie, 26-jdk-trixie, 26-trixie]

  • [26-ea-18-jdk-slim-trixie, 26-ea-18-slim-trixie, 26-ea-jdk-slim-trixie, 26-ea-slim-trixie, 26-jdk-slim-trixie, 26-slim-trixie, 26-ea-18-jdk-slim, 26-ea-18-slim, 26-ea-jdk-slim, 26-ea-slim, 26-jdk-slim, 26-slim]

  • [26-ea-18-jdk-bookworm, 26-ea-18-bookworm, 26-ea-jdk-bookworm, 26-ea-bookworm, 26-jdk-bookworm, 26-bookworm]

  • [26-ea-18-jdk-slim-bookworm, 26-ea-18-slim-bookworm, 26-ea-jdk-slim-bookworm, 26-ea-slim-bookworm, 26-jdk-slim-bookworm, 26-slim-bookworm]

  • [26-ea-18-jdk-windowsservercore-ltsc2025, 26-ea-18-windowsservercore-ltsc2025, 26-ea-jdk-windowsservercore-ltsc2025, 26-ea-windowsservercore-ltsc2025, 26-jdk-windowsservercore-ltsc2025, 26-windowsservercore-ltsc2025]

  • [26-ea-18-jdk-windowsservercore-ltsc2022, 26-ea-18-windowsservercore-ltsc2022, 26-ea-jdk-windowsservercore-ltsc2022, 26-ea-windowsservercore-ltsc2022, 26-jdk-windowsservercore-ltsc2022, 26-windowsservercore-ltsc2022]

  • [26-ea-18-jdk-nanoserver-ltsc2025, 26-ea-18-nanoserver-ltsc2025, 26-ea-jdk-nanoserver-ltsc2025, 26-ea-nanoserver-ltsc2025, 26-jdk-nanoserver-ltsc2025, 26-nanoserver-ltsc2025]

  • [26-ea-18-jdk-nanoserver-ltsc2022, 26-ea-18-nanoserver-ltsc2022, 26-ea-jdk-nanoserver-ltsc2022, 26-ea-nanoserver-ltsc2022, 26-jdk-nanoserver-ltsc2022, 26-nanoserver-ltsc2022]

共享标签(Shared Tags)

  • 26-ea-18-jdk, 26-ea-18, 26-ea-jdk, 26-ea, 26-jdk, 26:

    • [26-ea-18-jdk-oraclelinux9]
    • [26-ea-18-jdk-windowsservercore-ltsc2025]
    • [26-ea-18-jdk-windowsservercore-ltsc2022]
  • 26-ea-18-jdk-windowsservercore, 26-ea-18-windowsservercore, 26-ea-jdk-windowsservercore, 26-ea-windowsservercore, 26-jdk-windowsservercore, 26-windowsservercore:

    • [26-ea-18-jdk-windowsservercore-ltsc2025]
    • [26-ea-18-jdk-windowsservercore-ltsc2022]
  • 26-ea-18-jdk-nanoserver, 26-ea-18-nanoserver, 26-ea-jdk-nanoserver, 26-ea-nanoserver, 26-jdk-nanoserver, 26-nanoserver:

    • [26-ea-18-jdk-nanoserver-ltsc2025]
    • [26-ea-18-jdk-nanoserver-ltsc2022]

快速参考(续)

提交问题地址

[[]]

支持的架构

(更多信息参见[官方镜像文档] )
[amd64] 、[arm64v8] 、[windows-amd64]

发布的镜像工件详情

[repo-info仓库的repos/openjdk/目录] ([历史记录] )
(包含镜像元数据、传输大小等)

镜像更新

[official-images仓库的library/openjdk标签]
[official-images仓库的library/openjdk文件] ([历史记录] )

本文档来源

[docs仓库的openjdk/目录] ([历史记录] )

什么是OpenJDK?

OpenJDK(开放Java开发工具包)是Java平台标准版(Java SE)的免费开源实现。自版本7起,OpenJDK成为Java SE的官方参考实现。

.org/wiki/OpenJDK

Java是Oracle及其关联公司的注册商标。

![logo]

如何使用此镜像

在应用中启动Java实例

使用该镜像最直接的方式是将Java容器同时作为构建和运行环境。在Dockerfile中,可以按以下方式编写,以编译并运行项目:

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

然后构建并运行Docker镜像:

console
$ docker build -t my-java-app .
$ docker run -it --rm --name my-running-app my-java-app

在Docker容器内编译应用

有时可能不需要在容器内运行应用,仅需编译。可通过以下命令在Docker实例内编译(但不运行)应用:

console
$ docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp openjdk:11 javac Main.java

该命令会将当前目录挂载为容器卷,设置工作目录为该卷,然后执行javac Main.java编译Main.java,输出Main.class文件。

让JVM尊重CPU和RAM限制

JVM启动时会尝试检测可用CPU核心数和RAM,以调整内部参数(如垃圾回收线程数)。若容器限制了CPU/RAM,JVM用于探测的标准系统API可能返回主机级别的值,导致旧版JVM出现CPU过度使用或内存分配错误。

在Linux容器中,OpenJDK 8及更高版本可正确检测容器限制的CPU核心数和可用RAM,且默认启用此功能。

在Windows Server(非Hyper-V)容器中,CPU核心数限制不生效(被主机计算服务忽略)。需手动设置限制,例如通过以下命令启动JVM:

console
$ start /b /wait /affinity 0x3 path/to/java.exe ...

示例中,CPU亲和性十六进制掩码0x3将JVM限制为2个CPU核心。

RAM限制在Windows Server容器中受支持,但JVM目前无法检测。需通过-XX:MaxRAM=...参数指定不超过容器RAM限制的值,避免内存分配过度。

环境变量名称含点的情况

部分shell(如Alpine Linux中包含的[BusyBox /bin/sh] )不支持名称含点的环境变量(技术上不符合POSIX标准),会将其剥离(Bash则会保留)。若应用需要此类环境变量,可直接使用CMD ["java", ...](不通过shell),或安装并显式使用Bash替代/bin/sh

镜像变体

openjdk镜像有多种版本,适用于不同场景。

openjdk:<version>

这是默认镜像。若不确定需求,建议使用此版本。既可作为临时容器(挂载源码并启动容器运行应用),也可作为基础镜像构建其他镜像。

部分标签含bookwormtrixie等名称,这些是[Debian] 的版本代号,标识镜像基于哪个Debian版本。若需安装镜像自带之外的包,建议显式指定此类标签,以减少Debian版本更新时的兼容性问题。

openjdk:<version>(12及以上版本)、openjdk:<version>-oracleopenjdk:<version>-oraclelinux8

openjdk:12开始,默认镜像及-oracle-oraclelinux8变体基于官方[Oracle Linux 8镜像] ,该镜像根据[Oracle Linux最终用户协议(EULA)]([]

更多相关 Docker 镜像与资源

以下是 openjdk 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:

  • cimg/openjdk Docker 镜像说明(OpenJDK 运行时,CI/CD 优化版本,适合持续集成环境)
  • amd64/openjdk Docker 镜像说明(OpenJDK 运行时,AMD64 架构版本)
  • jenkins/openjdk Docker 镜像说明(Jenkins OpenJDK,CI/CD 构建环境)
  • arm64v8/openjdk Docker 镜像说明
  • circleci/openjdk Docker 镜像说明(CircleCI 维护的 OpenJDK 镜像,适合 CI 流水线中的 Java 编译与测试)

openjdk 国内 Docker 镜像拉取说明

在国内网络环境下,直接使用 docker pull 访问 Docker Hub 官方仓库时,较常遇到连接超时、TLS 握手失败或 registry 响应缓慢等情况。这类问题多与跨境链路质量、运营商策略及客户端 DNS 解析有关,并非单个镜像本身异常。

轩辕镜像提供两种常用加速方式:一是使用公共加速域名 docker.xuanyuan.run 拉取(可参考 登录认证方式);二是在控制台配置 专属域名拉取,将拉取命令中的 registry 前缀替换为分配的专属域名,通常能提升成功率与稳定性。

openjdk 为例,加速拉取命令格式为 docker pull docker.xuanyuan.run/openjdk:<标签>,请将 <标签> 替换为具体版本。下方「镜像拉取方式」区块提供与本文一致的命令示例,可直接复制使用。

镜像拉取方式

您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面

轩辕镜像加速拉取命令点我查看更多 openjdk 镜像标签

docker pull docker.xuanyuan.run/openjdk:<标签>

DockerHub 原生拉取命令

docker pull openjdk:<标签>

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

专业版 · 高速稳定拉取镜像
50GB 仅 ¥7/年
高速镜像下载在线技术支持99.95% SLA 保障付费会员免广告