运行在TensorFlow Docker容器内的Jupyter Notebook无法修改工作目录如何解决
解决方案
问题根因
- 你之前的命令中
--notebook-dir参数指向的/c/Users/MyUser/是WSL宿主机的路径,不存在于Docker容器内部,Jupyter找不到指定路径时就会自动回落至镜像默认的/tf工作目录 - 你之前的挂载操作仅将
/c/Users/MyUser/MyFolder子目录挂载到容器内,并没有挂载你需要的C:\Users\MyUser根目录
最简单实现方案
不需要修改原镜像的WORKDIR配置,仅需要调整Docker启动命令的挂载规则和工作目录参数即可:
- 先将你需要的Windows本地目录(对应WSL路径
/c/Users/MyUser)直接挂载到容器内部的指定路径,比如/workspace - 再将
--notebook-dir参数指向容器内部的这个挂载路径即可
可用命令示例
docker run -it --gpus all -p 8888:8888 -v /c/Users/MyUser:/workspace:rw tensorflow/tensorflow:latest-gpu-py3-jupyter jupyter notebook --allow-root --ip=0.0.0.0 --NotebookApp.allow_origin='https://colab.research.google.com' --notebook-dir=/workspace
补充说明
- 启动后Jupyter的初始工作目录就是容器内的
/workspace,对应Windows本地的C:\Users\MyUser,两端的文件修改会实时同步 - 如果遇到挂载目录的读写权限问题,可先检查WSL下
/c/Users/MyUser的访问权限,再确认Docker Desktop的文件共享配置已经开启了C盘的共享权限
内容的提问来源于stack exchange,提问作者cpowr
相关产品推荐
相关产品推荐

