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[edit | edit source]

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[edit | edit source]

Pulling docker images[edit | edit source]

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[edit | edit source]

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[edit | edit source]