在Docker Jupyter Notebook的GUI中展示卷文件

6

我正在使用Docker运行Jupyter Notebook,并尝试将本地目录挂载到预期的Docker卷上。但是在Jupyter笔记本中无法看到我的文件。Docker命令如下:

sudo nvidia-docker create -v ~/tf/src -it -p 8888:8888 
   -e PASSWORD=password 
   --name container_name gcr.io/tensorflow/tensorflow:latest-gpu

Jupyter Notebook的GUI看起来像这样:

Jupyter notebook

但是~/tf/src在Jupyter GUI中没有显示。

文件需要什么条件才能在Jupyter中显示?我是否初始化容器有误?


-v /path-in-host-containing-your-notebooks:/tf - Alex Punnen
4个回答

6

我认为您挂载卷的方式不正确 -v ~/tf/src,应该是

-v /host/directory:/container/directory


有一个缺失的部分,sudo nvidia-docker create -v /Users/user/tf/src:/notebooks -it -p 8888:8888 -e PASSWORD=password --name container_name gcr.io/tensorflow/tensorflow:latest-gpu"/notebooks" 是 jupyter 存放文件的目录。 - Karl L
1
在最新版本中,我看到笔记本位于/tf而不是/notebooks,因此...使用适当的<localdir><dockerdir>,运行以下命令:docker run --runtime=nvidia -it --name tensorflow -p 8888:8888 -v ~/<localdir>:/tf/<dockerdir> tensorflow/tensorflow:nightly-jupyter - Ian Mercer

2

Ferdi D的回答仅针对解释器内部的文件,而不是Jupyter GUI内部的文件,这使得事情有点混淆。我通过更一般地显示Jupyter笔记本中的文件来针对标题Show volume files in docker jupyter notebook


解释器内部的文件

-v标志可以获取解释器或笔记本中的文件,但不一定在Jupyter GUI中。

enter image description here

您需要运行以下命令:

$ docker run --rm -it -p 6780:8888 -v "$PWD":/home/jovyan/ jupyter/r-notebook

由于挂载点取决于发行版及其路径,因此您可以在此处要求将当前目录挂载到Jupyter的路径/home/jovyan

Jupyter GUI中的文件

To get the files in Jupyter GUI:

OS X

If you had some other than /home/jovyan at the current Jupyter version, the files would not appear in Jupyter GUI so use

$ docker run --rm -it -p 6780:8888 -v "$PWD":/home/jovyan/ jupyter/r-notebook

Some other distros

$ docker run --rm -it -p 6780:8888 -v "$PWD":/tmp jupyter/r-notebook

More generally

For checking up for /home/jovyan/ or /tmp, you can getwd() in R to see your working directory.

enter image description here

更多的线程

  1. 关于这个主题的Reddit讨论可以在这里找到。

2

由于位置似乎发生了改变,而且已接受的答案没有完全说明如何让您的本地目录显示在Tensorflow Jupyter中,因此将其发布为答案(请在一行上键入适当的<localdir><dockerdir>):

 docker run --runtime=nvidia -it 
            --name tensorflow 
            -p 8888:8888 
            -v ~/<localdir>:/tf/<dockerdir> 
            tensorflow/tensorflow:nightly-jupyter 

0

Karl L认为以下是解决方案。将解决方案移至此处,以便每个人都可以评判它并使问题更易于阅读。


解决方案

sudo nvidia-docker create -v /Users/user/tf/src:/notebooks 
   -it -p 8888:8888 -e PASSWORD=password 
   --name container_name gcr.io/tensorflow/tensorflow:latest-gpu

正如 @fendi-d 指出的那样,我错误地挂载了我的卷。

然后我被指向了错误的挂载目录,我在 tensorflow 的 docker 文件中找到了正确的目录 https://github.com/tensorflow/tensorflow/blob/master/tensorflow/tools/dockerfiles/dockerfiles/gpu.Dockerfile

它配置了 jupyter 笔记本,然后将文件复制到 "/notebooks"。

# Set up our notebook config.
COPY jupyter_notebook_config.py /root/.jupyter/

# Copy sample notebooks.
COPY notebooks /notebooks

在我使用正确的挂载路径运行后,它显示我的文件位于“/Users/user/tf/src”


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接