1

我开始学习 Singularity 以对科学管道进行可重复分析。一位同事解释说,图像用于实例化容器。但是,在阅读文档和教程时,instance也使用了该术语,并且使用imageandcontainer似乎可以互换。所以,我不确定我是否完全理解图像、容器和实例之间的区别。我确实知道食谱是用于构建其中一个的文本文件(我认为是图像?)。

例如,在此页面上,它解释了:

现在我们可以将定义文件构建成图像了!只需运行build ,图像就可以使用了:

$ sudo singularity build url-to-pdf-api.img Singularity

好的,所以这使用配方Singularity来构建图像,直观的扩展名为.img. 但是,build命令的帮助描述指出:

$ 奇点帮助建立

用法:singularity [...] build [build options...]

build 命令根据配方(定义文件)或基于 URI、位置或存档编译容器。

所以这似乎表明我们正在构建一个容器?

然后,有imageinstance子命令。

所有这些术语可以互换使用吗?有时它们似乎是,有时它们之间存在差异。

4

1 回答 1

3

Acontainer是创建沙盒运行环境的一般概念,可以用作通用术语来指代 Docker 或 Singularity 映像。但是,它有时也用于指代正在生成的特定文件。这可能并不理想,因为它显然会给新用户造成混淆。

image一般用来指代实际创建的文件singularity build ...

instance是指运行奇点图像的特定方式。通常,如果您singularity run some_image.sifsingularity some_image.sif some_command您在它运行时无法轻松访问它的环境。但是,如果您改为运行singularity instance start some_image.sif some_instance1它,则会创建一个持久服务,您可以像 docker 容器一样访问该服务。奇点服务/实例文档有一些很好的例子,说明实例的使用方式与基本execrun命令不同。

于 2019-10-23T11:31:15.980 回答