singularity-container - 奇点容器 - 在单独的分区中绑定文件夹
问题描述
data_dir
我在没有 root 权限的高性能集群上有一个私有组项目文件夹(我们称之为)。该文件夹位于单独的分区中。
我有一个需要访问的奇点容器data_dir
。官方文档说 -B
flag 是绑定路径,但我无法使用-B
. 这是我到目前为止所尝试的:
XXXXXX login1[~/work/subcam] master ⦿ ➜ readlink data
/gpfs/projects/oceanvideo/data
XXXXXX login1[~/work/subcam] master ⦿ ➜ singularity run -B $(readlink data):$(pwd)/data container.sif
WARNING: skipping mount of /local_scratch: no such file or directory
________ _______________
___ __/__________________________________ ____/__ /________ __
__ / _ _ \_ __ \_ ___/ __ \_ ___/_ /_ __ /_ __ \_ | /| / /
_ / / __/ / / /(__ )/ /_/ / / _ __/ _ / / /_/ /_ |/ |/ /
/_/ \___//_/ /_//____/ \____//_/ /_/ /_/ \____/____/|__/
You are running this container as user with ID 21530 and group 21500,
which should map to the ID and group for your user on the Docker host. Great!
tf-docker ~/work/subcam > cd data
bash: cd: data: No such file or directory
tf-docker ~/work/subcam > cd /gpfs/
tf-docker /gpfs > ls
work
tf-docker /gpfs > cd projects
bash: cd: projects: No such file or directory
如何data_dir
使用容器访问?
解决方案
-B
是在容器中挂载目录的正确方法。几个选项:
- 如果
/gpfs/projects/oceanvideo/data
它本身是一个符号链接,它不会在容器内解析并给出错误代码。readlink
只会解决一个级别。找到原始的非链接路径并将其与-B
. - 如果不是这种情况,请运行 with
singularity -vv run ...
以查看是否有更多关于目录未挂载原因的信息。 - 确保集群允许用户绑定
推荐阅读
- javascript - 通过 Vue / Node.js 中的 includes() 检查元素是否在数组中
- hazelcast - Hazelcast 快速聚合器或喷射器是否使用先前聚合的结果
- java - Maven:如何在 >= Java 9 中向模块路径添加依赖项
- r - 强制在算术运算中产生问题
- prediction - 我如何预测会有多少航班?
- python - 从 Anaconda 提示符而不是 spyder 导入包
- node.js - How to filter record from multilevel document as per user input using MongoDB and Node.js?
- node.js - 根据日期获取预订数量
- ios - UITableViewCell 重复值
- mocha.js - 如何检测所有测试(在多个文件中)已完成