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

标签 docker ssh jupyter-notebook jupyter jupyter-lab

我正尝试在远程计算机上通过 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>

但是当我在浏览器中访问服务器时,保存选项被禁用。

enter image description here

我已经尝试了一些建议的解决方案 elsewhere in SO , 但没有运气。

这是关于通过 SSH 连接的吗? Jupyter 服务器认为它不是安全连接?

最佳答案

问题可能与 SSH 配置有关,但我认为更可能与卷挂载的权限问题有关。

请尝试查看您的 Docker 容器日志以查找与权限相关的错误。您可以使用 following 来做到这一点:

docker container logs <container id>

也请查看您的 docker run 命令提供的输出。

另外,尝试在容器中打开一个shell:

docker exec -it <container id> /bin/bash

并查看您是否能够在默认工作目录中创建文件:

touch /home/jovyan/work/test_file

最后,Jupyter docker stacks 存储库有一个 troubleshooting page几乎完全致力于权限问题。

请特别考虑 Additional tips and troubleshooting commands for permission-related errors 中提供的解决方案并且,按照建议,尝试让您的操作系统用户启动容器:

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) .

关于docker - 无法在 docker 容器中运行的远程 Jupyter 服务器上保存文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73210034/

相关文章:

docker - 基于另一个 ENV 变量的变量的条件集

ssh-keygen 不生成 OPENSSH key ,而不是 RSA key

ssh - Capistrano 未能通过 SSH 公钥身份验证,但所有命令仍然成功

ssh - 为什么 rsync 与 Jenkins 失败

python - 无法在 ipython/jupyter notebook 中运行 unittest 的主要功能

docker - 如何在Traefik v1.7中使用特定的http端口?

node.js - 在 Docker 中构建 Meteor 无法通过代理设置

python - 在 jupyter notebook 上导入 OpenCV

python - 在 pipeline/gridSearch 中使用 TFI/DF 和 CountVectorizer

networking - Docker:如何连接两个网桥