python-3.x - 如何从在 docker compose 的不同端口上运行的另一个烧瓶容器调用一个容器的端点?
问题描述
我正在尝试使用 docker-compose 实现 3 个烧瓶 docker 容器。我在不同的端口上运行每个烧瓶应用程序127.0.0.1:5000
, 127.0.0.1:5001
, 127.0.0.1:5002
. 我已经提到了docker-compose.yml
文件中的容器。docker-compose
正在创建默认网络。
但是当我尝试从代码访问5001 container's
烧瓶端点时5000 container's
requests.get('http://127.0.0.1:5001/endpoint')
, 它抛出以下错误。
HTTPConnectionPool(host=\'0.0.0.0\', port=5001): url 超出最大重试次数(由 NewConnectionError 引起
有谁知道我为什么会得到这个。
解决方案
那是因为您试图在 docker 容器本身内连接到 localhost,即流量停留在该 docker 容器内。
相反,您要做的是通过主机名连接到其他容器。在 docker/docker-compose 管理的网络上下文中,这只是 docker 容器的名称。例如,对于容器foo
,您可以使用容器内部通过 HTTP 连接到端口 5001 http://foo:5001/
。
推荐阅读
- http - X-Cloud-Trace-Context 的目的是什么?
- php - 如何获取 id 和 ip_address 并在 Codeigniter 的 ci_session 表中再添加一列 user_id 并添加一
- android - 未找到 Kotlin 改造上传图片
- python - Spotipy:如何将身份验证令牌传递给客户端
- c++ - 最小输出始终为 0
- powershell - PSCredential 变量在传递给 get-winevent 后停止为 WinRM 函数工作
- excel - 索引和和积
- c# - 十进制且只有正数值
- javascript - Nuxt.js - 脚本 this.$router.push('/') 不起作用
- reactjs - 父组件重新渲染导致重复子组件渲染