但是当我在B上发出GET请求时,我收到了一个错误:
GET http://localhost:8000 dial tcp 127.0.0.1:8000 refused
我该如何解决?
docker-compose ps告诉我 8000 / tcp
的端口答案 0 :(得分:3)
你能告诉我们你的docker-compose.yml文件吗?用于两个容器之间链接的名称实际上创建了一个要连接的别名,就像localhost
是127.0.0.1
的别名一样:https://docs.docker.com/compose/yml/#links
因此,您不应在GET请求中通过localhost
进行连接。而是使用服务B的链接中使用的名称,以及后面的端口。以下是带有相应GET请求URL的示例配置文件:
<强>搬运工-compose.yml:强>
service_a:
image: service_a_image
ports:
- 7000 # maps port to host
links:
- service_b
service_b:
image: serivce_b_image
expose:
- 8000 # exposes port to other containers
从服务A获取网址到B:
http://service_b:8000
希望这有帮助!