社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  docker

无法通过主机访问Docker Flask服务器容器

ghbcode • 4 年前 • 467 次点击  

不幸的是,网络上充斥着类似的问题,尽管它们都略有不同,有些涉及虚拟机。以下是我的设置:

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地址。/

有什么指针吗?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/37949
 
467 次点击  
文章 [ 1 ]  |  最新文章 4 年前
ghbcode
Reply   •   1 楼
ghbcode    5 年前

如果你看这个 posting 您将看到开箱即用的Docker无法在OSX上按预期工作,即,如果在容器中运行服务器应用程序,则在没有设置的情况下无法在主机上访问它。因为我的Mac空间不足,家里有一台Linux服务器,所以我在Linux(mint)中使用docker解决了这个问题。解决方案完全不需要调整。Docker在Linux中的工作正如您(我)所期望的那样。

最后,这里有一个链接指向一组非常有用的后期安装 settings to consider when you run Docker on a Mac .