Apptainer is a container platform for building and running Linux containers that packages software, libraries, and runtime compilers in a self-contained enviroment. In addition, Apptainer containers can be easily deployed and ran across different computer systems. This document aims at demonstrating the process of building Apptainer containers, and deploying those containers on Discovery. Moreover, The document shows how to integrate an Apptainer container into a Slurm job to run it on Discovery.

Why Apptainer

Apptainer has become one of the most widely used container deployment systems for HPC systems. It’s designed to execute applications with bare-metal performance while retaining a high level of security, portability, and reproducibility.

Apptainer is an open source project with a growing community and ever-expanding user base. The main features of Apptainer are:

  • It supports public/private key signing for trust.

  • It’s compatible with Docker and the Open Containers Initiative.

  • Portability.

  • Containers run rootless to prohibit privilege escalation.

  • Leverages GPUs, FPGAs, high-speed networks, and filesystems.

  • Easy to use.

To learn more see Apptainer documentation