这些微软构建的OpenJDK容器镜像及相应的Dockerfile设计用于任何Java应用程序或Java应用组件。
目前我们提供基于Linux的容器镜像,支持Ubuntu和微软Azure Linux。镜像发布于微软容器注册表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) |
|---|---|---|---|---|---|
| Azure Linux 3.0 (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。基于CBL Mariner 2.0和CBL Mariner 1.0的旧版镜像已终止支持,不应再使用。
| 基础操作系统 | OpenJDK 21 | OpenJDK 17 | OpenJDK 11 | OpenJDK 8 (1) |
|---|---|---|---|---|
| CBL Mariner 2.0 | 21-mariner-cm2 | 17-mariner-cm2 | 11-mariner-cm2 | 8-mariner-cm2 |
| CBL Mariner 1.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镜像的反馈发送至microsoft/openjdk-docker

来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429