从另一个Docker容器连接到在Docker容器上运行的端点时发生502响应

问题描述

我有两个不同的服务(A和B),A调用B的api端点。A和B在本地主机中的两个不同的Docker容器中运行。

enter image description here

A的docker-compose.yml:

具有端口80:80并暴露80

B的

docker-compose.yml: 具有端口8881:8881并暴露8881。

我可以从浏览器访问http:// localhost:8881 /检查并获得200个响应 但不是从服务A内定义的函数内部调用时:

import requests
def check_service_B():
   url = "http://127.0.0.1:8881/check";
   resp = requests.get(url)
   print(resp.status_code)
   print(resp.content)

我收到502响应。我被困在过去的12个小时。谁能告诉我该如何解决?如果需要,我很乐意提供更多意见。

解决方法

使用服务名称代替127.0.0.1。就像http:// service_b:8881 / check

他们也必须在同一个docker网络中。