我正在尝试访问在主机上的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)上访问它。我的目标是最终从另一台本地计算机访问该地址。我究竟做错了什么?
答案 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