繁体   English   中英

无法在 docker 容器中运行的远程 Jupyter 服务器上保存文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM