Singularity (containers)
A Docker-compatible container platform for HPC
Software containerization is a popular solution for environment-level reproducibility. Singularity is a software containerization solution for HPC and cluster systems such as the FSU HPC. It is compatible with Docker and is capable of automatically converting Docker containers to Singularity containers
Note
Singluarity was recently rebranded as Apptainer, but we have not upgraded yet. When we do, we will update this page to reflect the latest command names and branding.
Basic Usage#
The singularity
command is available by default when you log in to the HPC cluster.
The run
command syntax is as follows:
Full Singularity documentation and examples use are available at the official Singularity User Guide.
A note about Docker#
Docker is NOT available on the HPC. We require all users needing to use Docker containers convert them to Singularity containers. See below for instructions on how to convert/import Docker containers to Singularity.
Running Docker containers in Singularity#
Note
This is a summary of the documentation found at the official documentation site.
To run a Docker container in Singularity on the HPC, execute the command, singlarity run docker://[REPO]/[IMAGE:TAGS]
.
For example, to run the lolcow
image provided by Syslabs:
The first time you run this command, it will automatically download the Docker image and convert it into a .sif
image
file. The .sif
file will be stored in your home directory in a hidden folder: ~/.singularity
.
Subsequent runs will use the cached image file, unless you specify otherwise:
To "bust" the cache, and pull the original image, add the --disable-cache
option:
Specifying a custom cache directory#
By default, Singularity creates a hidden directory in your home directory for building/converting workflows:
Singularity typically cleans up when it completes, but images are cached in that directory. If you use Singularity and
are running up against your quota, you may consider specifying a custom cache directory via the SINGULARITY_CACHEDIR
environment variable:
More information on specifying a custom cache directory can be found at the official Singularity documentation.
Building containers and comprehensive tutorial#
For a comprehensive tutorial on Singularity, refer to this excellent guide.