mat*_*nts 5 docker jupyter-notebook
Docker新手
在Docker中使用Jupyter Notebook处理用户ID / GID和权限的最佳实践是什么?
当运行https://github.com/jupyter/docker-stacks/tree/master/scipy-notebook中的jupyter + python Dockerfile之一时,笔记本将以uid / gid 1000:100保存。如果已安装的主机文件夹不能由“ other”写入,则此操作将失败。
可以指定NB_UID和NB_GID运行笔记本图像,如下所示:
docker run -p 8888:8888 -it --rm -e NB_UID = $(id -u)-e NB_GID = $(id -g)-e GRANT_SUDO =是--user root --mount type = bind,source = “ $(pwd)”,target = / home / jovyan / work myimage
在这种情况下,容器中joyvan的uid / gid与我的 uid / gid 匹配,因此写入已安装的文件夹没有权限问题。但是,现在,jovyan(容器用户)无法访问/ opt / conda,它是1000:100拥有的,其他用户无法读取。因此,无法加载所有附加软件包!
我相信这会导致/ home / jovyan和/ opt / conda都和我同一个uid:gid拥有,一切都很好。但是,生成的图像只能由我使用。如果我将其提供给我的协作者(具有不同的uid),它将无法正常工作。
因此,似乎所有可能性都被阻止或选择不当。泊坞窗中的文件权限很困难。
任何人都可以分享解决此问题的最佳方法吗?
Jupyter Notebook的最佳做法是使用您自己的用户ID和组ID,以便您创建的新文件具有正确的所有权。然后使用--group-add users将自己添加到用户组以访问所需的文件夹(例如/ opt / conda)。
完整的命令将是:
docker run -it --rm --user $(id -u):$(id -g) --group-add users -v "$(pwd)":/home/jovyan -p 8888:8888 jupyter/scipy-notebook
| 归档时间: |
|
| 查看次数: |
728 次 |
| 最近记录: |