奇点容器 - 在单独的分区中绑定文件夹
Singularity container - Binding a folder in a seperate partition
我在没有 root 权限的高性能集群上有一个私人组项目文件夹(我们称之为 data_dir
)。该文件夹位于单独的分区中。
我有一个奇点容器,我需要在其中访问 data_dir
。官方documentation says -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
只会解决一个级别。找到原始的 non-linked 路径并将其与 -B
. 一起使用
- 如果不是这样,运行 和
singularity -vv run ...
看看是否有更多关于为什么目录没有被挂载的信息。
- 确保 the cluster allows user binds
我在没有 root 权限的高性能集群上有一个私人组项目文件夹(我们称之为 data_dir
)。该文件夹位于单独的分区中。
我有一个奇点容器,我需要在其中访问 data_dir
。官方documentation says -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
只会解决一个级别。找到原始的 non-linked 路径并将其与-B
. 一起使用
- 如果不是这样,运行 和
singularity -vv run ...
看看是否有更多关于为什么目录没有被挂载的信息。 - 确保 the cluster allows user binds