远程Jupyter笔记本+Docker不更新文件目录?

2024-06-17 13:17:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在使用一个远程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

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

^{pr2}$

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

有人知道为什么会出现这种情况吗?如果是的话,如何“刷新”/“更新”树?在

非常感谢所有的帮助!在


Tags: dockerrun命令目录文件夹bin远程usr
1条回答
网友
1楼 · 发布于 2024-06-17 13:17:37

Docker容器有一个独立的文件系统。这意味着容器中运行的程序(在您的例子中是jupyter笔记本)看到的文件夹与主机系统中的文件夹不同。在

如果您想让容器访问主机中的一个文件夹,可以在运行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,查看容器文件系统:

^{pr2}$

运行此命令后,您将处于容器内的bash中,因此您可以看到包含lspwd等的内部文件系统

相关问题 更多 >