我正在尝试访问我主机上的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)上访问它。我的最终目标是从另一台本地计算机访问此地址。我做错了什么?
发布于 2019-07-22 17:23:35
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
https://stackoverflow.com/questions/57122849
复制相似问题