访问在Docker容器上运行的Jupyter笔记本

时间:2016-08-08 13:33:02

标签: python docker jupyter-notebook

我用python库和Jupyter创建了一个docker镜像。 我使用选项-p 8888:8888启动容器,以链接主机和容器之间的端口。 当我在容器中启动Jupyter内核时,它在localhost:8888上运行(并且找不到浏览器)。我使用了命令jupyter notebook

但是从我的主机,我必须使用什么IP地址在主机的浏览器中使用Jupyter?

使用ifconfig命令,我找到eth0dockerwlan0lo ......

谢谢!

10 个答案:

答案 0 :(得分:46)

您需要在0.0.0.0上运行笔记本:jupyter notebook -i 0.0.0.0。在localhost上运行使其仅在容器内部可用。

答案 1 :(得分:16)

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

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

主机访问此网址:localhost:8888/tree‌​

当您第一次登录时,终端上会显示一个链接,以便使用令牌登录。

答案 2 :(得分:7)

获取指向Jupyter笔记本服务器的链接:

docker run命令之后,应自动生成超链接。它看起来像这样:http://localhost:8888/?token=f3a8354eb82c92f5a12399fe1835bf8f31275f917928c8d2 :: /home/jovyan/work

如果您想稍后再次获取该链接,可以输入docker exec -it <docker_container_name> jupyter notebook list

答案 3 :(得分:3)

强制使用docker run命令打开容器的端口,以允许来自主机浏览器的连接,使用-p将端口分配给docker容器,然后从docker images中选择jupyter映像。

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

在容器内部,启动笔记本,分配您打开的端口:

jupyter notebook --ip 0.0.0.0 --port 8888 --no-browser --allow-root

通过http://localhost:8888上的桌面浏览器访问笔记本 笔记本将提示您输入创建笔记本时生成的令牌。

答案 4 :(得分:2)

您可以使用命令jupyter notebook --allow-root --ip[of your container]或使用选项--ip0.0.0.0授予对所有ip的访问权限。

答案 5 :(得分:2)

以下是我如何使用docker工具箱在Windows 7上运行它。

如果使用的是docker工具箱,请打开Docker快速入门终端,并在此处记下IP:

(req, res)

一旦您从tensorflow installation website运行docker命令:

docker is configured to use the default machine with IP 192.168.99.100
For help getting started, check out the docs at https://docs.docker.com

您将收到这样的消息:

docker pull tensorflow/tensorflow                  # Download latest image
docker run -it -p 8888:8888 tensorflow/tensorflow  # Start a Jupyter notebook server

在主机中,将 127.0.0.1 替换为 192.168.99.100 ,并使用该URL的其余部分

答案 6 :(得分:1)

查看Manifold最近开源的Torus项目。我们希望我们的ML工程师能够轻松地在整个团队中拥有一致的开发环境的新项目上运行。这个Python cookiecutter将为您构建一个新的项目结构,其中包括一个Dockerfile,它使用我们放在Docker Hub中的预先附加的ML dev图像和一个Docker Compose配置,它负责为您处理所有端口转发。编写配置是为了选择主机上的一个开放端口,以转发到容器内8888上运行的笔记本服务器。在您的机器上运行多个笔记本电脑服务器不再麻烦!看看它希望这是有帮助的!

Github回购:https://github.com/manifoldai/docker-cookiecutter-data-science

我们为什么要构建它(带有演示):https://medium.com/manifold-ai/torus-a-toolkit-for-docker-first-data-science-bddcb4c97b52

答案 7 :(得分:0)

在容器中,您可以运行以下命令使其在本地计算机上可用(使用docker machine的IP地址)。

jupyter notebook --ip 0.0.0.0 --allow-root

根据您的容器设置,您可能不需要提供--allow-root标志。

答案 8 :(得分:0)

作为构建自己的Docker映像的替代方法,您还可以使用ML Workspace映像。 ML Workspace是一个开源Web IDE,它将Jupyter,VS Code,桌面GUI和许多其他工具和库组合到一个方便的Docker映像中。部署单个工作区实例非常简单:

docker run -p 8080:8080 mltooling/ml-workspace:latest

所有工具都可以从同一端口访问,并集成到Jupyter UI中。您可以找到更多的文档here

答案 9 :(得分:0)

docker run -i -t -p 8888:8888continentumio / anaconda3 / bin / bash -c“ / opt / conda / bin / conda install jupyter -y --quiet && mkdir / opt / notebooks && / / opt / conda / bin / jupyter笔记本--notebook-dir = / opt / notebooks --ip ='*'--port = 8888 --no-browser --allow-root“

我必须在命令中添加--allow-root,现在它正在运行