如何将服务器文件夹挂载到Jupyter Docker容器中实现访问
操作步骤
1. 终止当前运行的Jupyter容器
首先执行docker ps找到正在运行的jupyter/scipy-notebook对应容器的ID或名称,执行以下命令停止并移除原有容器(若容器内有未持久化的自定义数据请先备份):
docker stop <你的容器ID/名称> docker rm <你的容器ID/名称>
2. 重新启动容器并挂载宿主机目录
使用Docker的-v绑定挂载参数,将宿主机用户根目录下的rep1仓库映射到容器内jovyan的工作目录下,命令如下:
docker run -p 8888:8888 -v ~/rep1:/home/jovyan/rep1 jupyter/scipy-notebook:33add21fab64
启动后你在Notebook中可以直接通过/home/jovyan/rep1路径访问宿主机rep1目录下的所有文件。
可选配置
解决权限异常问题
如果挂载后出现无法编辑、写入rep1目录文件的情况,是因为容器内默认jovyan用户的UID/GID和宿主机当前用户不一致,可以增加参数同步UID/GID:
docker run -p 8888:8888 \ -v ~/rep1:/home/jovyan/rep1 \ --user root \ -e NB_UID=$(id -u) \ -e NB_GID=$(id -g) \ jupyter/scipy-notebook:33add21fab64
直接将rep1设为Notebook默认工作目录
如果你希望执行os.getcwd()得到的/home/jovyan直接对应宿主机的rep1目录,可以直接把rep1挂载到/home/jovyan路径,该操作会覆盖容器内/home/jovyan路径下的原有默认文件,请确认无影响后操作:
docker run -p 8888:8888 \ -v ~/rep1:/home/jovyan \ --user root \ -e NB_UID=$(id -u) \ -e NB_GID=$(id -g) \ jupyter/scipy-notebook:33add21fab64
验证配置
启动容器后进入Notebook,执行!ls /home/jovyan/rep1即可列出宿主机rep1目录下的文件,正常读写无报错即为配置成功。
内容的提问来源于stack exchange,提问作者monkey2
相关产品推荐
相关产品推荐

