我为远程集群中的Tensorflow ML使用了一个预建的奇点容器。我使用下面的命令打开位于/cvmfs/unpacked.cern.ch/registry.hub.docker.com/fnallpc/中的奇点容器
singularity run --nv --bind `readlink $HOME` --bind `readlink -f ${HOME}/nobackup/`
--bind /cvmfs /cvmfs/unpacked.cern.ch/registry.hub.docker.com/fnallpc/fnallpc-docker:tensorflow-latest-devel-gpu-singularity它很好地打开了奇点图像,命令也起作用了。
现在,我有几个需要Tensorflow环境的文件,但当我打开图像时,显然没有文件。当我打开Singularity容器时,有没有办法使用我的工作目录(它需要Tensorflow环境)中的文件?我想知道是否有一个命令可以一起打开我的工作目录中的镜像和文件,这样我就可以在容器镜像中访问这些文件。
发布于 2021-06-03 18:04:15
默认情况下,$HOME和当前目录都是自动挂载的。但是,如果容器内不存在路径,则允许自动挂载以静默方式失败。例如,您从/cluster/storage/somepath执行,但在奇点容器中没有/cluster。如果$HOME在某个奇怪的地方,也会发生同样的情况,但这种情况要少得多。
显式使用--bind没有这个问题。添加--bind "$PWD"应该可以解决这个问题。
您可以使用singularity exec --bind "$PWD" image.sif pwd快速测试您是否在预期的位置执行。容器内的工作目录与容器外的工作目录匹配(如果可用),如果$PWD不可用,则返回$HOME;如果镜像内的$PWD和$HOME都不可用,则返回/。
https://stackoverflow.com/questions/67781508
复制相似问题