Singularity

From Leo's Notes
Last edited on 13 July 2022, at 23:23.


Singularity is a utility that can run containers without requiring any elevated privileges.

Cheat sheet

Description Command
Pulling images from docker hub singularity pull docker://gcc:7.2.0 (outputs gcc_7.2.0.sif)

singularity pull docker://gcc (outputs gcc_latest.sif)

Running a container ./gcc_latest.sif (which uses the container's runscript)

singularity run gcc_latest.sif

Exec a command instead of runscript singularity exec gcc_latest.sif echo hi

Tasks

Pulling docker images

singularity pull pulls from:

  • docker:// docker hub
  • shub:// Singularity hub

Images that are pulled will be saved as a .sif file. If a tag was provided, the tag will be part of the output filename.

Building singularity image from Dockerfile

You cannot build Dockerfiles in Singularity. Instead, you will need to build the image using Docker and then convert it to a Singularity image.

# docker build -f Dockerfile-jupyter-plotly -t jupyter/scipy-notebook-plotly .
# docker images
REPOSITORY                        TAG            IMAGE ID       CREATED         SIZE  
jupyter/scipy-notebook-plotly     latest         a8f13623a91f   8 minutes ago   3.21GB

# singularity build /tmp/jupyter-plotly.sif docker-daemon://jupyter/scipy-notebook-plotly:latest

If you don't have Singularity installed, you can also use the Singularity docker image:

# docker pull quay.io/singularity/singularity
# docker run --rm -ti -v /tmp:/tmp quay.io/singularity/singularity \
   build /tmp/jupyter-plotly.sif docker-daemon://jupyter/scipy-notebook-plotly:latest

Once Singularity build completes, you should end up with a .sif singularity image.

See Also