Visit Azul.com Support

Create a Chainguard Container with Azul Zulu

Table of Contents
Need help?
Schedule a consultation with an Azul performance expert.
Contact Us

This section shows how to use Azul Zulu with Chainguard containers, regularly-updated, secure-by-default container images.

What are Chainguard Containers?

Chainguard Containers are minimal container images that are secure by default.

In many cases, the Chainguard Containers tagged as :latest contain only an open-source application and its runtime dependencies. These minimal container images typically do not contain a shell or package manager. Chainguard Containers are built with Wolfi, a Linux undistro designed to produce container images that meet the requirements of a more secure software supply chain.

The main features of Chainguard Containers include:

For cases where you need container images with shells and package managers to build or debug, most Chainguard Containers come paired with a -dev variant.

Although the -dev container image variants have similar security features as their more minimal versions, they feature additional software that is typically not necessary in production environments. We recommend using multi-stage builds to leverage the -dev variants, copying application artifacts into a final minimal container that offers a reduced attack surface that won’t allow package installations or logins.

Download a Chainguard Zulu Container Image

The container images are available on cgr.dev and require authentication. This also gives you access to the Chainguard Console, and provides a mechanism for Chainguard to contact you if there are any issues with images you are pulling. This enables Chainguard to notify you of upcoming deprecations, changes in behavior, critical vulnerabilities and remediations for images you have recently pulled.

 
docker pull cgr.dev/ORGANIZATION/zulu-jdk:latest

Be sure to replace the ORGANIZATION placeholder with the name used for your organization’s private repository within the Chainguard Registry.

Compatibility Notes

The zulu-jdk is based on Azul Zulu Builds of OpenJDK (Zulu). These are certified OpenJDK builds provided by Azul Platform Core. Zulu brings tight security and the cost efficiencies you need to run today’s business–critical, Java-based services.

The zulu-jdk image is part of the Chainguard Images collection, which are minimal, regularly-updated container images designed with security in mind. The image can be pulled from cgr.dev and is suitable for use in various environments, including production.

Getting Started

To test the zulu-jdk image, start by pulling the image:

 
docker pull cgr.dev/ORGANIZATION/zulu-jdk:latest

Replace ORGANIZATION with your organization’s name.

Next, run a container using the image you just downloaded:

 
docker run -it --rm cgr.dev/ORGANIZATION/zulu-jdk:latest java -version

This command will start a container and display the Java version to verify that the image is working correctly.

Create a simple Java application, for example, HelloWorld.java:

 
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello world"); } }

Then compile and run the application inside the container:

 
docker run -it --rm -v $(pwd):/workspace -w /workspace cgr.dev/ORGANIZATION/zulu-jdk:latest javac HelloWorld.java docker run -it --rm -v $(pwd):/workspace -w /workspace cgr.dev/ORGANIZATION/zulu-jdk:latest java HelloWorld

You should see the output Hello world, indicating that the image can compile and run Java applications.

Learn More

To better understand how to work with Chainguard Containers, please visit Chainguard Academy and Chainguard Courses.