如何解决无法构建可写奇点容器
我正在尝试使用命令 sudo singularity build --writable my_container.img docker://image_name
构建可写奇点容器,但出现错误 Error for command "build": unknown flag: --writable
。
我决定遵循 Singularity (here) 的指南,看看能否找到我的问题。我正在使用命令 sudo singularity build --writable lolcow.img shub://GodloveD/lolcow
,但出现相同的错误 Error for command "build": unknown flag: --writable
。
我使用的是奇点 3.6.4 版。
有人碰巧知道会发生什么吗?
解决方法
--writable 是运行选项。那是为了构建:
sudo singularity build lolcow.img shub://GodloveD/lolcow
对于跑步:
singularity run --fakeroot --writable lolcow.img
您还需要 --fakeroot 来写入 root 可访问的位置。
然而,它不是持久的。正如“将 SIF 文件转换为临时沙箱...”消息所提醒的那样。也就是说,您可以在会话期间编写,但完成后它就消失了:
$ singularity shell -f --writable lolcow.img
INFO: Converting SIF file to temporary sandbox...
WARNING: Skipping mount /etc/localtime [binds]: /etc/localtime doesn't exist in container
Singularity> echo test > /etc/banana
Singularity> cat /etc/banana
test
Singularity> exit
INFO: Cleaning up image...
$ singularity shell -f --writable lolcow.img
INFO: Converting SIF file to temporary sandbox...
WARNING: Skipping mount /etc/localtime [binds]: /etc/localtime doesn't exist in container
Singularity> cat /etc/banana
cat: /etc/banana: No such file or directory
Singularity>
对于用于测试/开发目的的持久写入,您可以使用 --sandbox 选项,但您也需要以 root 用户身份运行它:
$ sudo singularity build --sandbox lolcow.img shub://GodloveD/lolcow
$ sudo singularity shell --writable lolcow.img
WARNING: Skipping mount /etc/localtime [binds]: /etc/localtime doesn't exist in container
Singularity> echo test > /etc/banana
Singularity> cat /etc/banana
test
Singularity> exit
$ sudo singularity shell --writable lolcow.img
WARNING: Skipping mount /etc/localtime [binds]: /etc/localtime doesn't exist in container
Singularity> cat /etc/banana
test
Singularity> exit
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。