奇点:镜像、容器和实例之间有什么区别?
Singularity: What is the difference between an image, a container, and an instance?
我开始学习 Singularity 以对科学管道进行可重现的分析。一位同事解释说,使用图像来实例化容器。但是,在阅读文档和教程时,还使用了术语 instance
,并且 image
和 container
的用法似乎可以互换。所以,我不确定我是否准确理解图像、容器和实例之间的区别。我确实知道食谱是用于构建其中之一的文本文件(我认为是图像?)。
例如,在 this page 上说明:
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
好的,所以这使用配方 Singularity
构建图像,直观扩展 .img
。但是,build
命令的帮助说明指出:
$ 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.
所以这似乎表明我们正在构建一个容器?
然后,还有image
和instance
子命令。
所有这些术语都可以互换使用吗?似乎有时它们是,有时它们之间存在差异。
A container
是创建沙盒 运行 环境的一般概念,可用作指代 Docker 或 Singularity 图像的通用术语。然而,它有时也用于指代正在生成的特定文件。这可能并不理想,因为它显然会使新用户感到困惑。
image
一般用来指代singularity build ...
实际创建的文件
instance
指的是运行宁奇点图像的一种具体方式。通常,如果您 singularity run some_image.sif
或 singularity some_image.sif some_command
在 运行ning 时您无法轻松访问其环境。但是,如果您改为 运行 singularity instance start some_image.sif some_instance1
,它会创建一个持久服务,您可以像 docker 容器一样访问它。 singularity service/instance documentation 有一些很好的例子,说明实例的使用方式与基本的 exec
和 run
命令有何不同。
我开始学习 Singularity 以对科学管道进行可重现的分析。一位同事解释说,使用图像来实例化容器。但是,在阅读文档和教程时,还使用了术语 instance
,并且 image
和 container
的用法似乎可以互换。所以,我不确定我是否准确理解图像、容器和实例之间的区别。我确实知道食谱是用于构建其中之一的文本文件(我认为是图像?)。
例如,在 this page 上说明:
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
好的,所以这使用配方 Singularity
构建图像,直观扩展 .img
。但是,build
命令的帮助说明指出:
$ 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.
所以这似乎表明我们正在构建一个容器?
然后,还有image
和instance
子命令。
所有这些术语都可以互换使用吗?似乎有时它们是,有时它们之间存在差异。
A container
是创建沙盒 运行 环境的一般概念,可用作指代 Docker 或 Singularity 图像的通用术语。然而,它有时也用于指代正在生成的特定文件。这可能并不理想,因为它显然会使新用户感到困惑。
image
一般用来指代singularity build ...
instance
指的是运行宁奇点图像的一种具体方式。通常,如果您 singularity run some_image.sif
或 singularity some_image.sif some_command
在 运行ning 时您无法轻松访问其环境。但是,如果您改为 运行 singularity instance start some_image.sif some_instance1
,它会创建一个持久服务,您可以像 docker 容器一样访问它。 singularity service/instance documentation 有一些很好的例子,说明实例的使用方式与基本的 exec
和 run
命令有何不同。