python-3.x - 如何在docker compose中的不同端口上运行的另一个 flask 容器中调用一个容器的端点?

标签 python-3.x docker flask docker-compose docker-networking

我正在尝试使用docker-compose实现3个flask docker容器。我在不同的端口127.0.0.1:5000127.0.0.1:5001127.0.0.1:5002上运行每个flask应用程序。我已经在docker-compose.yml文件中提到了容器。 docker-compose正在创建默认网络。

但是当我尝试从5001 container's代码访问5000 container's flask端点时
requests.get('http://127.0.0.1:5001/endpoint'),它引发以下错误。

HTTPConnectionPool(host=\'0.0.0.0\', port=5001): Max retries exceeded with url (Caused by NewConnectionError



有谁知道我为什么得到这个。

最佳答案

那是因为您尝试连接到Docker容器本身内的localhost,即流量保持在该Docker容器内。

您要做的是通过其主机名连接到另一个容器。在由docker / docker-compose管理的网络上下文中,这仅仅是docker容器的名称。例如。对于容器foo,您可以使用容器内的http://foo:5001/通过HTTP连接到端口5001。

关于python-3.x - 如何在docker compose中的不同端口上运行的另一个 flask 容器中调用一个容器的端点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58169484/

相关文章:

csv - 使用 Python 搜索并替换 CSV 文件中的文本

Python3 导入错误 : No module named '_tkinter'

python - Pandas:按数百个分组 DataFrame

flask 渲染模板不与 anchor 标记一起工作# - jinja2.exceptions.TemplateNotFound

python - 当 DEBUG=False 时 Flask mail 不发送邮件

Python优化形状重叠检测

docker - Anchore Engine 是否支持从 DockerHub 扫描本地 Docker 镜像/私有(private) Docker 镜像中的漏洞?

php - PHP xdebug已加载,但从未连接且从未记录任何内容

docker - Windows版Docker-导出体积数据

python - Flask 输入日期解析