我正在尝试运行在Docker中创建的jupyter笔记本。
首先,我运行一个容器:
docker run -p 8888:8888 jupyter/tensorflow-notebook
我得到的是:
[I 19:44:47.140 NotebookApp] Writing notebook server cookie secret to /home/jovyan/.local/share/jupyter/runtime/notebook_cookie_secret
[I 19:44:51.731 NotebookApp] JupyterLab extension loaded from /opt/conda/lib/python3.7/site-packages/jupyterlab
[I 19:44:51.732 NotebookApp] JupyterLab application directory is /opt/conda/share/jupyter/lab
[I 19:44:51.742 NotebookApp] Serving notebooks from local directory: /home/jovyan
[I 19:44:51.743 NotebookApp] The Jupyter Notebook is running at:
[I 19:44:51.743 NotebookApp] http://(c693a40d34b7 or 127.0.0.1):8888/?token=2e31ab3088fcf6a707480d456152c993606f26164fcc99ab
[I 19:44:51.743 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 19:44:51.753 NotebookApp]
To access the notebook, open this file in a browser:
file:///home/jovyan/.local/share/jupyter/runtime/nbserver-6-open.html
Or copy and paste one of these URLs:
http://(c693a40d34b7 or 127.0.0.1):8888/?token=2e31ab3088fcf6a707480d456152c993606f26164fcc99ab
但当我尝试在Chrome上打开Jupyter笔记本时:
file:///home/jovyan/.local/share/jupyter/runtime/nbserver-6-open.html
or
http://c693a40d34b7:8888/?token=2e31ab3088fcf6a707480d456152c993606f26164fcc99ab
它写的文件没有找到或该网站无法到达。我做错了什么?
5条答案
按热度按时间watbbzwu1#
我所要做的是使用命令获取码头机器的IP地址:
然后使用我得到的ip代替命令中给出的ip:
kse8i1jr2#
file:///home/jovyan/.local/share/jupyter/runtime/nbserver-6-open.html
或
http://c693a40d34b7:8888/?token=2e31ab3088fcf6a707480d456152c993606f26164fcc99ab
这只是意味着如果你打开容器中的浏览器,你可以做以上.
当你在容器中启动它,并希望在主机或其他机器上打开浏览器,你肯定需要做一些更改,在您的情况下,它应该是下一个:
如果只是在Docker主机上打开浏览器,那么也可以用途:
或者
如果其他电脑需要访问,你仍然需要指定的码头主机ip。
iklwldmw3#
以下是对我有效的方法:
从另一个终端运行以下命令:
正如@atline提到的,如果你在container中打开浏览器,你可以点击终端上的url,但很可能你的浏览器没有在Docker中运行,你想从非Dockerized浏览器访问Dockerized jupyter。
在您的网址中更改主机和端口如下:
将更改为:
aurhwmvo4#
docker-machine ip
不适合我,但它帮助我思考如何启动我的docker守护进程。如果您的docker守护进程通过minikube运行,您可以使用以下命令获取minikube集群的ip地址
使用从中获得的IP地址代替127.0.0.1。
yvt65v4c5#
尝试在运行新容器时将可选设置中的端口配置更改为端口80,并使用http://127.0.0.1/?token=2e31ab3088fcf6a707480d456152c993606f26164fcc99ab调用(删除给定地址中的端口8888,因为80是默认值)。