如何正确共享Jupyter Docker进行托管

时间:2019-07-20 08:00:01

标签: docker jupyter-notebook

我正在尝试访问在主机上的docker(windows)上运行的jupyter。运行常规命令时:

docker run -it -p 8888:8888 -v ~:/home/jovyan/workspace jupyter/tensorflow-notebook

我收到了可以访问笔记本的地址:

    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://(be1b837f3804 or 127.0.0.1):8888/?token=0b2a6eaec3aae87xc2c04....

使用127.0.0.1而不使用其他地址时,可以在主机(Windows)上访问它。我的目标是最终从另一台本地计算机访问该地址。我究竟做错了什么?

1 个答案:

答案 0 :(得分:0)

be1b837f3804是容器的主机名,客户端无法从容器之外访问该主机名。

实际上,当您使用127.0.0.1:8888访问服务时,仍然不会直接访问容器。它将首先访问主机的网络名称空间(127.0.0.1),然后因为您进行了端口绑定(-p 8888:8888),所以所有到主机8888的流量都将路由到容器的8888端口。

因此,正如我在评论中所说,如果您想从其他客户端访问容器的服务,则必须指定主机的ip,例如Docker主机的IP为192.168.1.101,然后在另一台PC上打开以访问:

http://192.168.1.101:8888/?token=0b2a6eaec3aae87xc2c04....

您可能还想看看official guide