如何将NFS共享装载到JupyterHub中的派生容器?

2024-04-25 00:28:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试在DockerSwarm上配置JupyterHub服务器。我无法将NFS文件夹直接装载到JupyterHub服务生成的容器中。在

我试图使用docker compose将其装载到JupyterHub服务中,然后将其装载到本地装载的文件夹中以生成容器,并且它可以工作,但是现在我们在这个服务上遇到了一个瓶颈,因为每次容器需要处理文件时,它都会先转到JupyterHub服务,然后再转到NFS共享。我想让它从派生容器直接转到NFS共享,但这似乎不是一件容易的事。在

为了将nfs直接安装到容器,我使用了jupyterhub中的下一个代码_配置.py在

mounts = [
    {
        'type': 'volume',
        'target': USER_WORKDIR,
        'source': 'jhub-user-{username}',
        'driver_config': {
            'name': 'local',
            'options': {
                'type': 'nfs',
                'o': NFS_IP + ',rw',
                'device': ':/opt/nfs/share'
            }
        }
    }
]

c.SwarmSpawner.extra_container_spec = {'mounts': mounts}

在这种情况下,我可以登录到容器,但是用户的卷不能创建。在

我尝试的另一种方法是将这段代码放到pre_spawn_hook中,所以它看起来像这样

^{pr2}$

在这种情况下,它在登录时为每个用户创建自己的卷,但这些卷由于某种原因不能访问NFS文件夹。在

另外,只需exec到派生容器并运行mount命令也不起作用。在

谢谢。在


Tags: composedocker代码用户服务器文件夹type情况