如何解决奇点相当于“docker image list”
是否存在等效于 docker image list
的奇点?
Singularity 3.8 documentation 声明
所有缓存条目都使用内容哈希命名
这在检查相同的图层/图像时很有意义,但没有任何语义意义。将此与 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
的 Singularity 等价物是 ls *.sif
。
这是 Docker 和 Singularity 之间的主要区别之一:一项服务具有集中的本地图像集合,可供所有组成员使用,而图像作为文件可供任何人在任何安装了 Singularity 的计算机上运行。您显示的缓存列表也特定于您的用户(通常为 ~/.singularity/cache
),尽管构建操作最终会在 /root/.singularity/cache
处共享缓存,因为它们需要 sudo 权限。
docker image ls
和 singularity cache list
之间的另一个重要区别是在清除奇点缓存后,您生成的 sif 仍然按预期工作。删除 docker 镜像相当于删除该 sif 文件。
如果一个图像很可能被其他人使用,那么在文件系统上设置一个共享位置是值得的。通过这种方式,您还可以将有权创建图像的用户与仅需要使用它们的用户分开。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。