Liberty container images
WebSphere Liberty and Open Liberty offer a collection of preconfigured container images that provide different options for Java versions and distribution, feature set, and runtime versions. We can use a container image to build and run the containerized applications. The preconfigured container images contain an International License Agreement for Non-Warranted Programs (ILAN) license. The license allows entitled Liberty customers to use the images under an International Program License Agreement (IPLA) term.
- WebSphere Liberty container images on IBM Container Registry
- Open Liberty container images on IBM Container Registry
WebSphere Liberty container images on IBM Container Registry
Preconfigured WebSphere Liberty container images use the Red Hat Universal Base Image as the operating system and are available from the IBM Container Registry (ICR) at...
-
icr.io/appcafe/websphere-liberty
We can append a WebSphere Liberty container image tag to specify the details of the container image we want to pull from the IBM container registry. For example...
-
icr.io/appcafe/websphere-liberty:kernel-java21-openj9-ubi-minimal
Optional: Verify the signature of a Liberty container image
Follow the Open Liberty procedure with a WebSphere Liberty container image tag from the IBM container registry.
- kernel-java17-openj9-ubi-minimal
- kernel-java11-openj9-ubi-minimal
- kernel-java8-openj9-ubi-minimal
- kernel-java8-ibmjava-ubi-minimal
- full-java17-openj9-ubi-minimal
- full-java11-openj9-ubi-minimal
- full-java8-openj9-ubi-minimal
- full-java8-ibmjava-ubi-minimal
- kernel-java17-openj9-ubi
- kernel-java11-openj9-ubi
- kernel-java8-openj9-ubi
- kernel-java8-ibmjava-ubi
- full-java17-openj9-ubi
- full-java11-openj9-ubi
- full-java8-openj9-ubi
- full-java8-ibmjava-ubi
- latest
These tags pull the latest version because they do not specify a version number. We can specify a version other than the latest version in the image tag.
Tip: If we have an IBM Cloud ID, we can generate a list of the currently available images in the IBM container registry using the IBM Cloud CLI with the IBM Cloud Container Registry CLI plug-in installed. To list the images,
- ibmcloud login
ibmcloud cr region-set global
ibmcloud cr images --restrict appcafe/websphere-liberty
Authentication is required only to list the images. We can pull images from the IBM container registry without authentication.
When using the IBM Cloud CLI to list the images in the IBM container registry, we might see container image tags that include platform-specific information at the end of the tag, for example kernel-java11-openj9-ubi-amd64. These tags are not intended for use in FROM directives in your Dockerfile. Select from the tags that end in ubi.
Open Liberty container images on IBM Container Registry
Like the WebSphere Liberty container images on the IBM container registry, the Open Liberty images are RHEL-based and certified by both IBM and Red Hat®. These repositories contain two sets of versioned tags that correspond to the last two quarterly boundary images, such as 23.0.0.12 or 23.0.0.9. Each repository also contains a set of version-less tags that corresponds to the most recent fix pack.
See the IBM Container Registry (ICR) page on the Open Liberty GitHub repository for the current list of available Open Liberty container images.
For information about Open Liberty container images and the values in the image tags, see Open Liberty container images on the Open Liberty website.
Container image naming conventions
Aside from the preformatted latest tag, Liberty container image tags use the following naming convention.<optional fix pack version-><liberty image type>-<java version>-<java type>-<base image type>
If we specify any image tag without including a version number, the latest version of WebSphere Liberty is included in the container image that you pull. In addition to the latest version, full and kernel images for the two most recent quarterly releases are always available in the IBM container registry and are refreshed regularly (every 1-2 weeks) to include fixes for the operating system (OS) and Java.
The following tag values determine the resources included in a container image.
- Fix pack version
-
This value is optional. If we do not specify a fix pack version, the container image includes the latest release of Liberty. In addition to the latest release, the two most recent quarterly fix pack releases are always maintained for the kernel and full image types.
Liberty quarterly release versions end in .3, .6, .9, or .12. For example, if the latest release is 24.0.0.1, then the 23.0.0.12 and 23.0.0.9 releases are also maintained in the IBM container registry. To pull one of these release versions instead of the latest, add your chosen release version to the beginning of any of the kernel or full image tags in the previous list. For example, if 23.0.0.12 is a recent quarterly release, we can pull an image that includes the 23.0.0.12 release with an OpenJ9 distribution of Java 8 by specifying the 23.0.0.12-full-java8-openj9-ubi tag.
- Liberty image type
-
Two different image types are available: kernel or full. The full type provides a server with all WebSphere Liberty features and packages installed.
The kernel type provides just the bare minimum server, which we can customize by adding only the features that the application needs. This image type supports the best practice for production images because you end up with a more lightweight image that packages only what is essential for the application.
- Java version
-
The Java version value determines the version of Java SE that the runtime uses. Tags are available for all Java long-term support (LTS) releases that are listed on the Java SE Support page on the Open Liberty website.
- Java type
-
The Java type value determines the type of Java SE distribution that the runtime uses. Current options are IBM Semeru Runtime with Eclipse OpenJ9, named openj9 and, for Java SE 8 only, the IBM SDK, Java Technology Edition, named ibmjava.
Both the ibmjava and openj9 Java types support the Linux x86_64 (amd64), Linux on Power (ppc64le), and Linux on IBM Z (s390x) architectures. Only images that use the openj9 Java type support the Linux on ARM (arm64) architecture.
Liberty images based on Universal Base Image (UBI) 9 minimal include JRE of IBM Semeru Runtime 21, 17, 11 or 8 or IBM Java 8. This combination offers a compact and effective Java runtime.
Java 8, 11 and 17 images with the openj9 and based on UBI 8 standard include IBM Semeru Runtime for the respective Java version with the Java SDK. Java 8 images with the ibmjava and based on UBI 8 standard include IBM Java 8 JRE.
- Base image type
-
Liberty images are available with two different types of Red Hat Universal Base (UBI) images: ubi-minimal or ubi. ubi-minimal offers a minimized preinstalled content set and the package manager microdnf for adding more packages. ubi offers the standard images with access to yum repositories and includes utilities such as tar and gzip.
In addition to the tags that follow this naming convention, WebSphere Liberty offers a preformatted latest tag that simplifies pulling the full latest release with Java JRE. It is an alias for the full-java21-openj9-ubi-minimal tag. If we do not specify a tag value, latest is used by default.
Retrieving WebSphere Liberty version from the container image
A WebSphere Liberty image includes the liberty.version label and the com.ibm.websphere.liberty.version label that specifies the Liberty version of the image. We can use the skopeo command to determine the Liberty version of the specified image.
- skopeo inspect docker://<websphere-liberty-image> | grep liberty.version
The skopeo command outputs the following example.
"com.ibm.websphere.liberty.version": "<liberty-version>", "liberty.version": "<liberty-version>",
Parent topic: Create container application images
Related: