访问在vm上运行的jupyter笔记本

时间:2016-07-23 18:32:02

标签: python vagrant jupyter-notebook

我想在我的ubuntu vm上运行jupyter笔记本,我使用vagrant进行了解决。

$ jupyter notebook --no-browser --port 8004
[I 18:26:10.152 NotebookApp] Serving notebooks from local directory: /home/vagrant/path/to/jupyter/notebook/directory
[I 18:26:10.153 NotebookApp] 0 active kernels
[I 18:26:10.154 NotebookApp] The Jupyter Notebook is running at: http://localhost:8004/
[I 18:26:10.154 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).

Jupyter笔记本在localhost中启动。但要从我的主机访问笔记本电脑,我需要在0.0.0.0中启动笔记本电脑。如何绑定ip 0.0.0.0以便它在vm中路由到127.0.0.1?

我的主机是windows,vm是ubuntu 14.04.4

4 个答案:

答案 0 :(得分:4)

Running a notebook server给出答案

首先生成jupyter_notebook_config.py文件

compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha3'

默认情况下,jupyter_notebook_config.py会对所有内容进行评论。修改以下条目:

  • 接受来自任何主机(不仅是localhost)的传入请求 查看$ jupyter notebook --generate-config 并将其更改为#c.NotebookApp.ip = 'localhost'
  • 不要启动浏览器
    查看c.NotebookApp.ip = '*'并将其更改为#c.NotebookApp.open_browser = True

答案 1 :(得分:2)

如上所述,您需要转发虚拟机上的端口。

当你运行虚拟机时,除非你授予它,否则盒子上的网络通常很少/不能访问外部世界。通常情况下,您可以建立从VM到外部的连接,但是侦听端口是另一个步骤。

让我们说你的主机名是myhostname,当你把myhostname:8080放在浏览器中时它将被拒绝,因为你的盒子没有运行任何东西。现在让我们假设您的虚拟机正在8080上运行服务器,并且您想要将这两者联系起来。您需要按照以下说明操作,以便当您点击myhostname:8080时,您的本机操作系统将看到VM正在侦听该端口。请求将被传递给VM,然后VM将其转发给您的jupyter实例。

这些是我发现的最佳说明:

https://www.howtogeek.com/122641/how-to-forward-ports-to-a-virtual-machine-and-use-it-as-a-server/

以下是我的设置的一些截图。我跑了' python -m http.server 8000'有服务器连接。

像这样设置您的VM:VM setup

从本机操作系统连接到虚拟服务器,如下所示: Hitting the server from your native OS

您域中的其他用户应该能够通过以下方式连接:8000。您可以通过输入' hostname'来在Windows上获得该功能。在命令行上。

假设您想要将您的http服务器暴露给端口80上的其他用户,但仍然在服务器内的端口8000上运行,您只需更改端口中的portforwarding配置,以便主机端口为80,而不是8000.

希望这有帮助

答案 2 :(得分:2)

您可以使用--ip参数来更改笔记本服务器将监听的IP地址。

运行:

jupyter notebook --ip=0.0.0.0

注意:运行jupyter notebook --help来检查参数。

--ip=<Unicode> (NotebookApp.ip)
    Default: 'localhost'
    The IP address the notebook server will listen on.

答案 3 :(得分:0)

看起来像在较新版本的Jupyter中,应该在配置中进行的更改与上述答案有些不同(否则您会收到错误“''似乎不是IPv4或IPv6地址”)。

整个解决方案:

运行:

  • c.NotebookApp.ip = '0.0.0.0'

在下面更改配置:

  • c.NotebookApp.open_browser = False
  • jupyter notebook

现在您可以简单地运行Jupyter:

  • {{1}}