Well-maintained (or not) OpenJDK Docker images
Here is a list of major OpenJDK vendors and the container images they offer.
Vendor | Image name | Tag | Release cycle | Base OS | Remarks |
---|---|---|---|---|---|
Azul | docker.io/azul/zulu-openjdk |
17 |
LTS | Ubuntu | |
Azul | docker.io/azul/zulu-openjdk-alpine |
17 |
LTS | Alpine Linux | |
Azul | docker.io/azul/zulu-openjdk-centos |
17 |
LTS | CentOS | |
Azul | docker.io/azul/zulu-openjdk-debian |
17 |
LTS | Debian | |
BellSoft | docker.io/bellsoft/liberica-openjdk-alpine |
17 |
LTS | Alpine (glibc) | |
BellSoft | docker.io/bellsoft/liberica-openjdk-alpine |
latest |
non-LTS | Alpine (glibc) | |
BellSoft | docker.io/bellsoft/liberica-openjdk-alpine-musl |
17 |
LTS | Alpine (musl) | |
BellSoft | docker.io/bellsoft/liberica-openjdk-alpine-musl |
latest |
non-LTS | Alpine (musl) | |
BellSoft | docker.io/bellsoft/liberica-openjdk-centos |
17 |
LTS | CentOS | |
BellSoft | docker.io/bellsoft/liberica-openjdk-centos |
latest |
non-LTS | CentOS | |
BellSoft | docker.io/bellsoft/liberica-openjdk-debian |
17 |
LTS | Debian | |
BellSoft | docker.io/bellsoft/liberica-openjdk-debian |
latest |
non-LTS | Debian | |
Eclipse | docker.io/library/eclipse-temurin |
latest |
non-LTS | Ubuntu | recommended non-LTS1 |
Eclipse | docker.io/library/eclipse-temurin |
17 |
LTS | Ubuntu | recommended LTS1 |
Eclipse | docker.io/library/eclipse-temurin |
17-alpine |
LTS | Alpine | |
gcr.io/distroless/java17-debian11 |
latest |
LTS | Debian | ||
Microsoft | mcr.microsoft.com/openjdk/jdk |
17-ubuntu |
LTS | Ubuntu | |
Microsoft | mcr.microsoft.com/openjdk/jdk |
17-mariner |
LTS | CentOS (derivative) | |
Microsoft | mcr.microsoft.com/openjdk/jdk |
17-cbld |
LTS | Debian (derivative) | |
Oracle | container-registry.oracle.com/java/openjdk |
latest |
non-LTS | Oracle Linux | recommended non-LTS2 |
Red Hat | registry.access.redhat.com/ubi8/openjdk-17 |
latest |
LTS | RHEL (UBI)4 | recommended LTS3 |
Red Hat | registry.access.redhat.com/ubi8/openjdk-17-runtime |
latest |
LTS | RHEL (UBI)4 |
General remarks:
As is apparent from the list, most vendors do not offer a rolling non-LTS image. Be careful when using a non-LTS image pinned to a specific version as its time under support will be quite limited. Rolling non-LTS images that always update to the latest OpenJDK version are fine (and may in fact be more secure and reliable than any LTS image considering that OpenJDK Updates primarily consists of backports from later versions).
Generally speaking, Docker images, particularly OpenJDK images, tend to drift from the latest update state of the base OS underlying them. It is probably a good idea to build your own runtime image (perhaps based on something like UBI Micro (manual)) and keep it up to date through a nightly CI job.
I cannot recommend any Alpine-based images at present because there are too many dependencies on glibc specifics (see also) in the ecosystem and using glibc on Alpine is not a supported configuration.
Footnotes:
Being a widely deployed image with lots of attention given to it, the Temurin image is probably the one you want if you prefer Ubuntu over RHEL.
Oracle is the main sponsor of OpenJDK. New OpenJDK releases tend to find their way into their image promptly. Oracle Linux is also a generally well-maintained and secure base; do note, however, that the OpenJDK image is typically only updated when a new OpenJDK is released, so you have to install system package updates yourself.
Red Hat is the second largest contributor to OpenJDK (after Oracle) and one of the sponsors of the OpenJDK 17 Updates project and is typically quick to release security patches. UBI8 is also a well-maintained and secure image base.
UBI is a trimmed-down version of RHEL that Red Hat distribute free of charge as part of their container image offerings.