Introduction
|
Apptainer/Singularity is a container platform designed by and for scientists.
Single-file based container images facilitates the distribution.
Secure. User inside the container = user outside.
|
Containers and Images
|
Use singularity --version to know what you are using and to communicate it if asking for support
A container can be started from a local .sif or directly with the URL of the image.
Apptainer is also compatible with Docker images, providing access to the large collection of images hosted by Docker Hub.
Get a shell inside of your container with apptainer shell <path/URL to image>
Execute a command inside of your container with apptainer exec <path/URL> <command>
Bind outside directories with --bind
|
Coffee break!
|
|
Building Containers
|
The command build is the basic tool for the creation of containers.
A sandbox is a writable directory where containers can be built interactively.
Superuser permissions are required to build containers if you need to install packages or manipulate the operating system.
Use interactive builds only for development and tests, use definition files for production or publicly distributed containers.
|
Containers from definition files
|
|
Coffee break!
|
|
Sharing files between host and container
|
Bind mounts allow reading and writing files within the container.
In Apptainer, you have same owner and permissions for files inside and outside the container.
Some paths are mounted by default by Apptainer.
Additional directories to bind can be defined using the --bind option or the environment variable $SINGULARITY_BIND .
|
Apptainer/Singularity instances
|
Instances allow to setup services via Apptainer images or definition files.
Code provided in Jupyter notebooks can be accompanied by a Apptainer/Singularity image with the environment needed for its execution, ensuring the reproducibility of the results.
|
Bonus Episode: Building and deploying an Apptainer container to GitHub Packages
|
|