2016-08-08 119 views
20

我用python庫和Jupyter創建了一個docker鏡像。 我使用選項-p 8888:8888啓動容器,以鏈接主機和容器之間的端口。 當我在容器中啓動一個Jupyter內核時,它在localhost:8888上運行(並且沒有找到瀏覽器)。我用命令jupyter notebook訪問運行在Docker容器上的Jupyter筆記本

但是從我的主機,我必須使用什麼IP地址來與主機瀏覽器中的Jupyter一起使用?

隨着命令ifconfig,我發現eth0dockerwlan0lo ...

謝謝!

+0

要啓動碼頭容器我使用'nvidia-docker'。 –

+0

你有沒有檢查,如果有東西在本地主機上偵聽:8888?例如使用netcat? – sge

+0

我嘗試在瀏覽器localhost:8888,但不使用netcat –

回答

22

您需要在0.0.0.0上運行筆記本電腦:jupyter notebook -i 0.0.0.0。在本地主機上運行只能在容器內使用。

+15

泊塢窗:'搬運工運行-IT -p 8888:8888 image:version' 容器:'jupyter notebook --ip 0.0.0.0 --no-browser' Host:'localhost:8888/tree' –

+0

@ j-guillaumin非常感謝!它只是通過使用命令jupyter筆記本--ip 0.0.0.0 - 無瀏覽器而不是jupyter筆記本。 – nkhuyu

+4

現在你必須添加這個標誌:'--allow-root'! 它來自Jupyter的安全問題。 或者您可以自定義配置文件以允許root(* .py在'〜/ .jupyter.') –

2

爲了讓鏈接到你的筆記本Jupyter服務器:

docker run命令後,超鏈接應自動生成。它看起來像這樣:http://localhost:8888/?token=f3a8354eb82c92f5a12399fe1835bf8f31275f917928c8d2 :: /home/jovyan/work

如果您想要再次獲得鏈接,可以鍵入docker exec -it <docker_container_name> jupyter notebook list

+0

'jupyter notebook list'由於[this]而不起作用(https://github.com/jupyter/筆記本/問題/ 2375)問題:( –

0

在容器中,您可以運行以下命令使其在本地計算機上可用(使用您的docker計算機的ip地址)。

jupyter筆記本--ip 0.0.0.0 --allow根

你可能不需要提供取決於你的容器的設置的--allow-root標記。

0

主機:docker run -it -p 8888:8888 image:version

容器內:jupyter notebook --ip 0.0.0.0 --no-browser --allow-root

主機訪問這個網址:localhost:8888/tree‌​

當你登錄首次會出現在終端上顯示的鏈接使用令牌登錄。