2016-07-23 119 views
2

我想運行運行在我的ubuntu vm上的jupyter筆記本,這是我使用vagrant解僱的。訪問運行在vm上的jupyter筆記本

 
$ 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

+1

VirtualBox的有一個端口轉發窗口... –

+0

或者http://jupyter-notebook.readthedocs.io/en/latest/public_server.html#notebook-public-server –

+0

另外,如果這就是你使用Vagrant的所有東西,那麼Doc​​ker有一個Jupyter圖像 –

回答

1

如何作爲服務器給出了答案

首先生成jupyter_notebook_config.py文件

$ jupyter notebook --generate-config 

jupyter_notebook_config運行jupyter筆記本。 py會有一切評論。找到c.NotebookApp.ip = 'localhost'並將其編輯爲c.NotebookApp.ip = '0.0.0.0'

0

如上面的註釋所述,您需要在虛擬機上轉發端口。

當您運行虛擬機時,除非您授權,否則該虛擬機上的網絡通常幾乎不可訪問外部世界。通常情況下,您可以從虛擬機連接到外部,但是監聽端口是另一步。

假設您的主機名是myhostname,當您將myhostname:8080放入瀏覽器時,它將被拒絕,因爲您的盒子沒有任何東西在運行。現在讓我們說你的虛擬機正在8080上運行一臺服務器,並且你想鏈接這兩臺服務器。您需要按照以下說明操作,以便當您點擊myhostname:8080時,您的本地操作系統將會看到該虛擬機正在偵聽該端口。該請求將傳遞給虛擬機,虛擬機會將其轉發給您的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'來讓服務器連接到。從您的本機OS VM setup

連接到虛擬服務器是這樣的::

設置你的虛擬機這樣 Hitting the server from your native OS

在域中的其他用戶應該能夠通過連接:8000。你可以通過在命令行上鍵入'hostname'來獲得它。假設您想要將HTTP服務器暴露給端口80上的其他用戶,但仍然在您的服務器中運行在端口8000上,那麼只需更改portforwarding config int的截圖,使主機端口爲80,而不是8000 。

希望這有助於