Apptainer containers¶
Singularity renamed to Apptainer
The Singularity containerisation project was renamed to Apptainer. In
Apptainer version 1.1.0, the singularity
command is a symlink to
apptainer
, for backward compatibility. In future releases, this symlink
may not be present, so we highly recommend to start using the apptainer
command when interfacing with Apptainer containers.
Linux containers are self-contained execution environments that share a Linux kernel with the host, but have isolated resources for CPU, I/O, memory, etc. A container can run a completely different Linux environment, without the overhead required by virtual machines.
Benefits of containers¶
- Reproducible science - containers can include an application and its dependencies, and be run on other systems where Apptainer is installed.
- Version independent - run code designed for other versions of Linux e.g. Ubuntu packages on a CentOS system.
- Self-contained - allow isolation of complicated application installs.
- Containers may be build in user space, without root privileges.
Apptainer¶
Apptainer is a popular Open Source container solution designed for HPC. Unlike other container solutions such as Docker, it allows utilisation of GPUs and Infiniband interconnects for MPI jobs, and does not allow privilege escalation within a container, which would compromise the security in a multi-user environment with a shared filesystem.
After researching the options, and running a pilot phase with users, Apptainer was selected for the Apocrita HPC cluster.
Using Apptainer on Apocrita¶
Apptainer is available as a system package on Apocrita. We may update the version of Apptainer installed on the cluster to address security vulnerabilities or to provide extra features as they become available.
Resources¶
Containers built by ITS Research are stored in /data/containers
and are
supported in a similar way to the globally available supported applications.
Applications installed within Apptainer containers may also be provided
as a module to abstract the container invocation commands. See the
Apptainer usage page for more information about
containers provided as modules.
If you maintain your own container definition files, we encourage you to store them in a version control system such as Github Enterprise.
Further reading¶
- Apptainer website
- Running
apptainer help
andapptainer help CMD
(replaceCMD
with a Apptainer command, such asrun
) - Viewing the "apptainer" manual page