如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
这些微软构建的OpenJDK容器镜像及相应的Dockerfile设计用于任何Java应用程序或Java应用组件。
目前我们提供基于Linux的容器镜像,支持Ubuntu和微软https://github.com/microsoft/AzureLinux。镜像发布于微软容器注册表mcr.microsoft.com/openjdk/jdk。你也可以访问mcr.microsoft.com/en-us/product/openjdk/jdk/tags获取最新可用标签列表。
要拉取特定标签的最新镜像,请使用以下命令:
bashdocker pull mcr.microsoft.com/openjdk/jdk:<tag>
下表显示了适用于不同Linux发行版和JDK版本的标签。
| 基础操作系统 | OpenJDK 25 | OpenJDK 21 | OpenJDK 17 | OpenJDK 11 | OpenJDK 8 (1) |
|---|---|---|---|---|---|
| https://github.com/microsoft/AzureLinux (2) | 25-azurelinux | 21-azurelinux | 17-azurelinux | 11-azurelinux | 8-azurelinux |
| Ubuntu 22.04 | 25-ubuntu | 21-ubuntu | 17-ubuntu | 11-ubuntu | 不适用 |
| Azure Linux 3.0 无发行版 | 25-distroless | 21-distroless | 17-distroless | 11-distroless | 8-distroless |
25-mariner、21-mariner、17-mariner、11-mariner和8-mariner),在该Linux发行版重命名和升级后,现在镜像-azurelinux标签。如有需要,用户可通过-mariner-cm2标签降级到CBL Mariner 2.0。旧版终止支持(EOL)镜像
基于CBL Mariner 2.0和CBL Mariner 1.0的旧版镜像已终止支持,不应再使用。
| 基础操作系统 | OpenJDK 21 | OpenJDK 17 | OpenJDK 11 | OpenJDK 8 (1) |
|---|---|---|---|---|
| https://github.com/microsoft/azurelinux/tree/2.0 | 21-mariner-cm2 | 17-mariner-cm2 | 11-mariner-cm2 | 8-mariner-cm2 |
| https://github.com/microsoft/azurelinux/tree/2.0 | 不适用 | 17-mariner-cm1 | 11-mariner-cm1 | 不适用 |
上述镜像支持amd64和arm64架构。容器运行时会根据环境拉取相应架构的镜像。要强制拉取特定架构的镜像,请使用以下命令:
bash$ docker pull --platform=linux/arm64 mcr.microsoft.com/openjdk/jdk:17-azurelinux
要在Dockerfile中强制指定架构,可使用以下方式:
DockerfileFROM --platform=linux/arm64 mcr.microsoft.com/openjdk/jdk:17-azurelinux AS build # ...
有关构建多平台容器镜像的更多信息,请查看容器运行时文档,例如Docker和Podman。
dockerfile# 直接使用微软构建的OpenJDK镜像示例 FROM mcr.microsoft.com/openjdk/jdk:17-ubuntu # 继续部署应用 RUN mkdir /opt/app COPY japp.jar /opt/app CMD ["java", "-jar", "/opt/app/japp.jar"]
无发行版镜像基于微软的Azure Linux 3.0发行版。它们需要不同的应用部署方式。由于无发行版镜像不包含完整的Linux发行版,因此没有shell等组件。
这些镜像的ENTRYPOINT已配置为指向java命令。使用时,Dockerfile必须通过CMD指令提供JVM启动进程的命令行参数。
创建包含以下内容的Dockerfile:
dockerfileFROM mcr.microsoft.com/openjdk/jdk:17-distroless COPY app.jar /app.jar CMD ["-Xmx256m", "-jar", "/app.jar"]
如果需要我们未提供的OS基础镜像,可通过Dockerfile中的COPY --from指令复制JDK,示例如下:
dockerfile# 使用微软构建的OpenJDK镜像与其他基础镜像的示例 FROM debian:buster-slim ENV JAVA_HOME /usr/lib/jvm/msopenjdk-17-amd64 ENV PATH "${JAVA_HOME}/bin:${PATH}" COPY --from=mcr.microsoft.com/openjdk/jdk:17-ubuntu $JAVA_HOME $JAVA_HOME # 继续部署应用 RUN mkdir /opt/app COPY japp.jar /opt/app CMD ["java", "-jar", "/opt/app/japp.jar"]
你也可以通过yum或apt-get安装JDK,或直接解压tar.gz文件并配置JAVA_HOME。了解更多。
要创建自定义Java运行时镜像,可使用类似以下示例的Dockerfile:
dockerfile# 多阶段构建中使用jlink创建自定义Java运行时示例 FROM mcr.microsoft.com/openjdk/jdk:17-ubuntu as runtime-build # 创建自定义Java运行时 RUN $JAVA_HOME/bin/jlink \ --add-modules java.base \ --strip-debug \ --no-man-pages \ --no-header-files \ --compress=2 \ --output /javaruntime # 定义基础镜像,可选择任何所需的OS及版本 FROM debian:buster-slim ENV JAVA_HOME /usr/lib/jvm/msopenjdk-17-amd64 ENV PATH "${JAVA_HOME}/bin:${PATH}" COPY --from=runtime-build /javaruntime $JAVA_HOME # 继续部署应用 RUN mkdir /opt/app COPY japp.jar /opt/app CMD ["java", "-jar", "/opt/app/japp.jar"]
有关创建自定义Java运行时的更多信息,请参见使用jlink的Java运行时
微软构建的OpenJDK容器镜像仅提供前述列出的标签。我们不发布次要版本标签,主版本标签始终包含最新的次要版本,以确保开发人员始终获得特定主版本的最新更新。
这些基础镜像使用Linux发行版的底层包管理器机制安装JDK包。因此,要保持特定版本,需使用apt-get或yum等工具安装特定的JDK次要版本。
可在Dockerfile中按以下示例配置:
Ubuntu示例:
DockerfileFROM mcr.microsoft.com/openjdk/jdk:11-ubuntu ... RUN apt-get update && \ apt-get install -y --allow-downgrades msopenjdk-11=11.0.26-1 ...
Azure Linux示例:
DockerfileFROM mcr.microsoft.com/openjdk/jdk:11-azurelinux ... RUN tdnf update -y && \ tdnf install -y --nogpgcheck msopenjdk-11-11.0.26-1 ...
有关此主题的更多信息和详细说明,请访问微软构建的OpenJDK文档。
访问MCR获取最新标签列表。
无。
微软构建的OpenJDK支持
请将关于Docker镜像的反馈发送至https://github.com/microsoft/openjdk-docker/issues
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


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