[英]Connect to jupyter notebook running in docker on a remote server
[英]Can't save file on remote Jupyter server running in docker container
我正在尝试在远程机器上通过 Docker 在 Jupyter Lab 中工作,但无法保存我打开的任何文件。
我正在使用Jupyter Docker Stack 。 我已经在远程机器上安装了 docker 并成功拉取了镜像。
我在~/.ssh/config
文件中设置了端口转发:
Host mytunnel
HostName <remote ip>
User root
ForwardAgent yes
LocalForward 8888 localhost:8888
当我启动容器时,我使用以下脚本:
docker run \
-p 8888:8888 \
-e JUPYTER_ENABLE_LAB=yes \
-v "${PWD}":/home/jovyan/work jupyter/tensorflow-notebook
容器正在运行:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c8fc3c720af1 jupyter/tensorflow-notebook "tini -g -- start-no…" 8 minutes ago Up 8 minutes 0.0.0.0:8888->8888/tcp, :::8888->8888/tcp adoring_khorana
我得到了常规的 Jupyter url 回来:
http://127.0.0.1:8888/lab?token=<token>
但是当我在浏览器中访问服务器时,保存选项被禁用。
我已经尝试过SO 其他地方提出的一些解决方案,但没有运气。
这是关于通过 SSH 连接的问题吗? Jupyter 服务器认为它不是安全连接?
该问题可能与 SSH 配置有关,但我认为更可能与您的卷安装权限问题有关。
请尝试查看您的 docker 容器日志以查找与权限相关的错误。 您可以使用以下方法执行此操作:
docker container logs <container id>
请参阅docker run
命令提供的 output。
另外,尝试在容器中打开一个 shell:
docker exec -it <container id> /bin/bash
并查看您是否能够在默认工作目录中创建文件:
touch /home/jovyan/work/test_file
最后,Jupyter docker 堆栈存储库有一个几乎完全致力于权限问题的故障排除页面。
请特别考虑在附加提示和故障排除命令中针对权限相关错误提供的解决方案,并按照建议尝试使用您的操作系统用户启动容器:
docker run \
-p 8888:8888 \
-e JUPYTER_ENABLE_LAB=yes \
--user "$(id -u)" --group-add users \
-v "${PWD}":/home/jovyan/work jupyter/tensorflow-notebook
之后,正如上述文档中所建议的那样,使用以下命令查看容器是否正确安装:
docker inspect <container_id>
在获得的结果中,请注意RW
字段的值,该值指示卷是否可写 ( true
) 或不可写 ( false
)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.