我开始学习用于科学管道可重复分析的奇点。一位同事解释说,已使用图像实例化容器。但是,在阅读文档和教程时,还使用了术语instance
,并且image
和container
的用法似乎可以互换。因此,我不确定我是否确切了解图像,容器和实例之间的区别。我确实知道,配方是用于构建其中一个的文本文件(我认为是图像?)。
例如,在this page上说明:
现在我们可以将定义文件构建为图像了!只需运行
build
图像将准备就绪:$ sudo singularity build url-to-pdf-api.img Singularity
好的,因此它使用配方Singularity
来构建图像,直观扩展名为.img
。但是,build
命令的帮助描述如下:
$奇异性帮助构建
用法:奇点[...] build [build 选项...]
构建命令 根据配方(定义文件)或基于URI编译容器, 位置或存档。
所以这似乎表明我们正在构建一个容器?
然后,有image
和instance
子命令。
所有这些术语是否可以互换使用?似乎有时候它们是相互之间有时又是不同的。
答案 0 :(得分:1)
container
是创建沙盒运行环境的一般概念,可以用作引用Docker或Singularity映像的通用术语。但是,有时它也用于指代所生成的特定文件。这可能不理想,因为它显然会引起新用户的困惑。
image
通常用于指代singularity build ...
instance
是指运行奇点图像的特定方式。通常,如果您singularity run some_image.sif
或singularity some_image.sif some_command
在运行时无法轻松访问其环境。但是,如果您改为运行singularity instance start some_image.sif some_instance1
,它将创建一个持久性服务,您可以像docker容器一样访问它。 singularity service/instance documentation提供了一些很好的示例,说明了如何与基本的exec
和run
命令不同地使用实例。