How to execute a Singularity container

There are 3 ways to start a Singularity container , each one serving a different purpose.

  1. Shell: If you want to get into a shell-interface (e.g. bash )

    singularity shell lent_latest.sif
    
  2. Run: If you want some predifined commands to be executed and don’t care about interactivity. For example, in many projects OpenFOAM must be ‘ sourced ’ to expose some commands and environment variables before running a simulation.

    # Here the container will not run interactively, but will only print the version of OpenFOAM.
    # Note that this command is not available in general unless the bashrc file is sourced.
    # The 'source /.../etc/bashrc' command have to exist in the '%runscript' section of the 'Definition' file otherwise we get an error.
    singularity run lent_latest.sif foamVersion
    
  3. Exec: If you want to avoid the scripted commands from the run command above or want to execute any other command instead (e.g. open a shell-interface):

    singularity exec lent_latest.sif python ./hello_world.py
    singularity exec lent_latest.sif /bin/bash
    

See also