Share via


Container images for the Microsoft Build of OpenJDK

This article provides information on the available container images for the Microsoft Build of OpenJDK.

Linux-based images

We currently supply Linux-based container images for Ubuntu and Microsoft Azure Linux. The images are published in the Microsoft Artifact Registry located at mcr.microsoft.com/openjdk/jdk.

To pull the latest image for a specific tag, use the following command:

docker pull mcr.microsoft.com/openjdk/jdk:<tag>

The following table shows the tag to use for your Linux distribution and JDK version.

Base OS 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 N/A
Azure Linux 3.0 Distroless 25-distroless 21-distroless 17-distroless 11-distroless 8-distroless
  • Note (1): Images for OpenJDK 8 ship with binaries of Eclipse Temurin, from the Eclipse Adoptium project.
  • Note (2): Legacy container image tags such as 25-mariner, 21-mariner, 17-mariner, 11-mariner, and 8-mariner that were previously built with Mariner 2.0, are now mirroring the tags -azurelinux, following a rebrand and upgrade of this Linux distribution. If necessary, users can downgrade to CBL Mariner 2.0 with the tags -mariner-cm2.

Legacy End of Life (EOL) images

Legacy images based on CBL Mariner 2.0 and CBL Mariner 1.0, have reached End of Life and should not be used.

Base OS 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 N/A 17-mariner-cm1 11-mariner-cm1 N/A
  • Note (1): Images for OpenJDK 8 ship with binaries of Eclipse Temurin, from the Eclipse Adoptium project.

Architectures

The images above are offered for both amd64 and arm64 architectures. Your container runtime shall pull the right image based on your environment. To force a pull of an image for a specific architecture, use the following:

$ docker pull --platform=linux/arm64 mcr.microsoft.com/openjdk/jdk:25-azurelinux

To force an architecture inside a Dockerfile, you may use the following:

FROM --platform=linux/arm64 mcr.microsoft.com/openjdk/jdk:25-azurelinux AS build
# ...

For more information on building multi-platform container images, check the documentation of your container runtime. For example,