paint-brush
AlmaLinux Container Images with Full RHEL UBI Compatibilityby@almalinux
128 reads

AlmaLinux Container Images with Full RHEL UBI Compatibility

by AlmaLinuxJanuary 18th, 2022
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

Universal Base Images (UBI) are meant to be OCI-compliant container base operating system images with complementary runtime languages and packages included. UBI compatible images come in four variants: Minimal, Base, Micro, and Init. The default container image isn’t going away; it’s been updated with the latest security updates. The base image includes some helpful OS tools like find, find, vi, vi and vi, etc., and a full DNF stack. Micro image uses the package manager on the underlying host to install packages, typically using Buildah or Multi-stage builds with Podman. The Micro image is 82% smaller than the Base image.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - AlmaLinux Container Images with Full RHEL UBI Compatibility
AlmaLinux HackerNoon profile picture

Cloud and Containers SIG have been hard at work lately on a project surrounding container updates, new images, new registries, and distribution.


FYI: All container images are available for both the x86_64 and arm64/v8 architectures.

Full UBI Compatible Container Set

AlmaLinux provides fully compatible alternatives for Red Hat Universal Base Images (UBI).


What is UBI you may ask? UBI is meant to be OCI-compliant container base operating system images with complementary runtime languages and packages included.


Prior to UBI, developers would need to package their containerized app depending on the deployment target. This essentially made those containers not really all that portable. UBI allow you to essentially have a standard, repeatable build, and deployment for your code and application, regardless of deployment target.


The UBI compatible images come in four variants: Minimal, Base, Micro, and Init. Here is a quick summary of what they offer:


FYI: The Default container image isn’t going away; it’s been updated.


Minimal: A minimal, compacted image that contains a limited package set and uses the microdnf package manager as a replacement for DNF. A minimal DNF uses libdnf and therefore doesn't require Python. This image is 52% smaller in size (37MB download, 102MB expanded). It is designed for applications that come with their dependencies bundled like GO, NodeJS, Java.


Container image tag for Minimal (Platform): almalinux:minimal

Container image tag for Minimal (UBI alternative): almalinux/8-minimal


Base: An image designed to be a base for your containerized applications, middleware and utilities. The Base image includes some helpful OS tools like find, tar, vi, etc., and a full DNF stack. The systemd initialization system and access to free dnf repositories are fully available.


Container image tag: almalinux/8-base


Micro: An even more minimized image. It is distributed without any package manager. The Micro image uses the package manager on the underlying host to install packages, typically using Buildah or Multi-stage builds with Podman. The Micro image is 82% smaller than the Base image and 68% smaller than the Minimal image. Since this image has only very few packages, it is more secure compared to other images.


Container image tag: almalinux/8-micro


Init: For running multiple applications with an init system. As a default, systemd is enabled for use.


Container image tag: almalinux/8-init

Container Security/Package Updates, New Registries and Distribution

In addition to all of the above, two of our images are available as Official Docker Hub images: Default and Minimal. Both of those have now been updated with the latest security fixes and package updates.


Default: A general purpose (platform) container image that contains default packages and can be used as a drop-in replacement for the CentOS 8 image.


Container image tag: almalinux:latest


Minimal: A minimal, compacted image that contains a limited package set and uses the microdnf package manager as a replacement for DNF. A minimal DNF uses libdnf and therefore doesn't require Python. This image is 52% smaller in size (37MB download, 102MB expanded). It is designed for applications that come with their dependencies bundled like GO, NodeJS, Java.


Container image tag for Minimal (Platform): almalinux:minimal

Container image tag for Minimal (UBI alternative): almalinux/8-minimal


All images are available at AlmaLinux's Docker Hub and quay.io.

All AlmaLinux images will be published to AWS' ECR Container Registry Service in the future. If you're running container-based workloads on AWS on either ECS, EKS, or anywhere else really, AlmaLinux containers are available to you locally on AWS.


More information coming soon about additional container registries and application specific images like Java JDK, NodeJS, and more.


To learn more about AlmaLinux container images, you can check out the containers section of the AlmaLinux Wiki. There you can find helpful information, details about each container, container tags, and links for the repositories for each image.


Containers are a lightweight version of the OS with an essential base for you to build upon. AlmaLinux container images are a method of building a containerized application and pushing it to the registry server to share and collaborate with others. Containers also provide some additional advantages for users like high reliability, security, and performance.

Community

Excellent work from an incredible Community on their contributions, questions, and comments on the issues. Especially two immortal community heroes, Bala Raman and Elkhan Mammadli, putting in a lot of work.


You can join the community on the AlmaLinux Community Chat and the AlmaLinux Community Forums for any help and assistance, or to discuss anything mentioned here.


You can also join the Cloud and Container SIG if you are a DevOps doer, containers are your A-game, you live in k8s, or just want to have a lot of fun building more containers, kubernetes operators, and a whole lot more!