尝试通过Docker运行TensorFlow时遇到访问Jupyter笔记本的困难

时间:2016-03-25 19:42:43

标签: windows powershell docker machine-learning tensorflow

我的问题:

这里的ML场新人。我目前正在尝试通过docker设置tensorflow,但是一旦tensorflow似乎正在运行,我就会遇到一些麻烦。为了将来的参考,我使用的是Windows 10,PowerShell,python 2.7和oracle virtualbox(v.5.0.16)。

我非常有信心Docker正常工作,因为我经历了他们的设置教程("使用Powershell中的docker")没有任何问题 - 我能够在那里运行hello world示例。我还能够使用命令

成功运行ubuntu终端
docker run -it ubuntu bash

然后我跟着tensorflow docker installation instructions,一切看起来都很正常 - 我输入了docker run命令for tensorflow:

docker run -it b.gcr.io/tensorflow/tensorflow

得到了这个输出:

[I 19:33:16.330 NotebookApp] Writing notebook server cookie secret to /root/.local/share/jupyter/runtime/notebook_cookie_secret
[W 19:33:16.360 NotebookApp] WARNING: The notebook server is listening on all IP addresses and not using encryption. This is not recommended.
[W 19:33:16.360 NotebookApp] WARNING: The notebook server is listening on all IP addresses and not using authentication. This is highly insecure and not recommended.
[I 19:33:16.365 NotebookApp] Serving notebooks from local directory: /notebooks
[I 19:33:16.365 NotebookApp] 0 active kernels
[I 19:33:16.365 NotebookApp] The Jupyter Notebook is running at: http://[all ip addresses on your system]:8888/
[I 19:33:16.366 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).

然而,当我试图访问localhost:8888的jupyter笔记本时,chrome表示在几秒钟内无法访问该网站,并且该服务器拒绝连接。

我尝试过的解决方案:

  • 遵循this stackoverflow post中的建议。当我运行命令时,他们建议启动一个新的tensorflow容器,我收到错误:

    exec: "./run_jupyter.sh": stat ./run_jupyter.sh: no such file or directory
    docker: Error response from daemon: Container command not found or does not exist..
    

    我也像他们建议的那样使用virtualbox更改了端口设置,这似乎也没有什么区别。

  • 当我使用命令 docker-machine ls 时,我尝试了为驱动程序列出的IP地址,而不是去localhost。这里没有运气。

  • 我的第一次尝试是使用docker附带的quickstart终端,我被困在同一个地方。所以现在我有一个"默认",从我使用quickstart终端设置docker时,和#34; my-default",从我使用powershell设置docker时开始。 Stackexchange评论说,快速入门终端不仅仅使用PowerShell,所以我开始使用PowerShell。

  • 尝试使用 docker-machine env 更改哪个驱动程序处于活动状态,然后为该驱动程序的IP地址运行tensorflow run命令,但仍然没有运气。

  • 尝试跳过jupyter笔记本,只是在命令行中通过python运行所有内容,如tensorflow安装的下一步所示("从命令行运行tensorflow")我不能甚至从那里导入张量流:

     >>> import tensorflow as tf
     Traceback (most recent call last):
       File "<stdin>", line 1, in <module>
     ImportError: No module named tensorflow
    

    我不知道如果不首先运行jupyter这是否可行,但我认为值得一试。这个问题可能与这篇文章的内容无关,但如果有人知道为什么会这样,那也会有所帮助。

我感谢所提供的任何和所有帮助。如果我说的任何内容含糊不清,或者我可以提供有关我尝试过的更多细节,请告诉我。非常感谢你提前。

2 个答案:

答案 0 :(得分:2)

尝试将-p 8888:888添加到docker run命令。

docker run -p 8888:8888 -it b.gcr.io/tensorflow/tensorflow

获得解决方案here

答案 1 :(得分:1)

对于ubuntu 14.04,我必须使用以下命令指定'/ bin / bash',以便它进入交互式控制台。

docker run -it gcr.io/tensorflow/tensorflow /bin/bash