I am starting to learn Singularity for reproducible analysis of scientific pipelines. A colleague explained that an image was used to instantiate a container. However, in reading through the documentation and tutorials, the term instance
is also used and the usage of image
and container
seems somewhat interchangeable. So, I am not sure I precisely understand the difference between an image, container, and instance. I do get that a recipe is a text file for building one of these (I think an image?).
For example, on this page it explains:
Now we can build the definition file into an image! Simply run
build
and the image will be ready to go:$ sudo singularity build url-to-pdf-api.img Singularity
Okay, so this uses the recipe Singularity
to build an image, with the intuitive extension of .img
. However, the help description of the build
command states:
$ singularity help build
USAGE: singularity [...] build [build options...]
The build command compiles a container per a recipe (definition file) or based on a URI, location, or archive.
So this seems to indicate we are building a container?
Then, there are image
and instance
sub-commands.
Are all these terms used interchangeably? It seems sometimes they are and sometimes there is a difference between them.