【问题标题】:Remote Jupyter Notebook + Docker -- Doesn't Update File Directory?远程 Jupyter Notebook + Docker -- 不更新文件目录?
【发布时间】:2019-02-20 19:25:54
【问题描述】:

我目前正在使用远程 Jupyter 笔记本(通过 docker 映像),并且在查找目录中存在的文件夹(我正在运行笔记本的位置)但不存在于笔记本树。

我用来执行笔记本的命令:

nvidia-docker run -it -p 8888:8888 --entrypoint /usr/local/bin/jupyter NAMEOFDOCKERIMAGE notebook --allow-root --ip=0.0.0.0 --no-browser

我用来远程访问笔记本的命令:

ssh -N -f -L localhost:8888:localhost:8888 remote_user@remote_host

奇怪的是,如果我导航到笔记本的工作目录(在远程主机/服务器上)并添加文件夹 + 文件,笔记本将不会反映更改(即工作目录中的 mkdir new_folder 不会将 new_folder 添加到笔记本的树)。

有谁知道为什么会出现这种情况,如果是这样,如何“刷新”/“更新”树?

非常感谢大家的帮助!

【问题讨论】:

    标签: python docker ubuntu jupyter-notebook


    【解决方案1】:

    Docker 容器具有独立的文件系统。这意味着在容器中运行的程序(在您的情况下是 jupyter notebook)看到的文件夹与您在主机系统中的文件夹不同。

    如果你想让容器访问宿主机中的一个文件夹,你可以在运行docker时使用option-v

    在您的情况下,您应该使用以下命令运行容器:

    nvidia-docker run -it -p 8888:8888 -v /PATH_TO_HOST_FOLDER:/PATH_TO_CONTAINER_FOLDER --entrypoint /usr/local/bin/jupyter NAMEOFDOCKERIMAGE notebook --allow-root --ip=0.0.0.0 --no-browser
    

    在哪里:

    • PATH_TO_HOST_FOLDER 是主机系统中要与容器共享的文件夹的路径。

    • PATH_TO_CONTAINER_FOLDER 是容器文件系统中文件夹的挂载点(例如,/home/username/work 其中username 是容器中的用户名)。

    容器中的路径取决于您使用的 docker 映像。如果您不知道容器中的路径,您可以查看容器文件系统,方法是使用以下命令在容器内运行 bash:

    nvidia-docker run -it --entrypoint /bin/bash NAMEOFDOCKERIMAGE 
    

    运行此命令后,您在容器内的 bash 中,因此您可以看到带有 lspwd 等的内部文件系统。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-17
      • 2019-11-29
      • 1970-01-01
      • 2018-09-21
      • 1970-01-01
      • 1970-01-01
      • 2022-07-17
      相关资源
      最近更新 更多