奇点相当于 "docker image list"

Singularity equivalent to "docker image list"

有没有等价于docker image list的奇点? Singularity 3.8 documentation 表示

All cache entries are named using a content hash

这在检查相同 layers/images 时有意义,但没有任何语义意义。将此与 docker 的 docker image list 进行比较,它列出了您已经拥有的具有语义意义名称的图像(例如 ubuntu、ros)。 示例:

$ singularity cache list -v
NAME                     DATE CREATED           SIZE             TYPE
496a66ed93a0244167905e   2021-07-23 18:20:26    0.57 KiB         blob
6b05187eae388023ea3f9d   2021-07-23 18:20:26    0.34 KiB         blob
a31c7b29f4ad2bd9467389   2021-07-23 18:20:26    27.24 MiB        blob
sha256.9b0dafaadb1cd1d   2021-07-24 14:37:56    90.46 MiB        library
sha256.cb37e547a142499   2021-07-23 18:10:22    55.39 MiB        library
b3e2e47d016c08b3396b5e   2021-07-23 18:20:29    26.45 MiB        oci-tmp

对比

$ docker image list
REPOSITORY               TAG        IMAGE ID       CREATED         SIZE
foxy-moveit2-tutorials   latest     ca302410c537   3 weeks ago     5.09GB
foxy-moveit2             latest     ba2e29d36a81   3 weeks ago     4.85GB
ros                      galactic   717c275e4609   5 weeks ago     675MB
ros                      foxy       5459f09fa2f1   5 weeks ago     723MB
devrt/xserver            latest     31e1d3e1887d   13 months ago   293MB

另一种方法是定义一个特定的目录,其中放置所有拉取的图像,并列出其内容:

$ singularity pull --dir ~/singularity_images/ docker://ros:foxy
$ ls singularity_images/
ros_foxy.sif

简而言之,奇点让您想知道您已经下载的图像,因为内容哈希值缺乏语义。

docker image ls 的奇点等价于 ls *.sif

这是 Docker 和 Singularity 之间的主要区别之一:一种集中收集本地图像的服务,可供所有组成员使用,而图像作为文件可供任何人 运行 使用在安装了奇点的任何计算机上。您显示的缓存列表也特定于您的用户(通常 ~/.singularity/cache),尽管构建操作最终会在 /root/.singularity/cache 共享缓存,因为它们需要 sudo 权限。

docker image lssingularity cache list 之间的另一个重要区别是在清除奇点缓存后,您生成的 sif 仍然按预期工作。删除 docker 图像等同于删除该 sif 文件。

如果图像可能被其他人使用,则值得在文件系统上设置一个共享位置。通过这种方式,您还可以将有权创建图像的用户与只需要使用它们的用户分开。