不幸的是,网络上充斥着类似的问题,尽管它们都略有不同,有些涉及虚拟机。以下是我的设置:
Mac OSX
Docker 18.06.0-CE型
我有一个非常简单的flask restful服务器,运行时可以通过以下方式访问:
http://127.0.0.1:8015/Outlier/username/100/
我得到了一个数值结果。
我已经用上面的服务器应用程序和需求flask、flask restful和requests设置了一个docker映像。当我运行该图像的容器时,我可以通过以下方式访问结果:
docker exec <container id> curl http://127.0.0.1:8015/Outlier/username/100/
问题是当我进入
http://127.0.0.1:8015/outlier/username/100/
通过Chrome,在主机上,我收到消息:
此页不工作
127.0.0.1未发送任何数据。
Err_Empty_响应
我知道容器是在自己的ip:port上运行的,而在主机上,我必须正确到达那个位置。
docker ps <container id>
港口展示
0.0.0.0:8015->8015/TCP
我确保dockerfile确实公开了8015:8015(因此主机和容器端口匹配)
docker inspect <container id>
返回一组详细信息,包括一个空主机提示。根据这个有用的
docker post
我得看看“网关”设置,在我的例子中是172.17.0.1。不管怎样,我已经通过chrome(和curl)在主机上尝试了以下方法,但没有成功。我应该设置什么其他设置?这不应该浪费时间…
http://localhost:8015/Outlier/username/100/
http://0.0.0.0:8015/Outlier/username/100/
http://127.0.0.1:8015/outlier/username/100/
http://lt;192.168.1.75我的主机IP,通过ifconfig>:8015/outlier/username/100/
http://172.17.0.1:8015/Outlier/username/100/
http://lt;172.17.0.2,根据docker inspect>:8015/outlier/username/100,它是IP地址。/
有什么指针吗?