2016-08-08 121 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‌​

当你登录首次会出现在终端上显示的链接使用令牌登录。