gpt4 book ai didi

docker - 从 docker-compose 网络内部使用其 url 访问另一个服务

转载 作者:行者123 更新时间:2023-12-02 18:14:24 24 4
gpt4 key购买 nike

我正在使用 docker-compose 托管 3 个服务。

    version: '3.3'

services:

service-a:
container_name: service-a
network_mode: default
ports:
- 8001:8001
- 8080:8080


service-b:
container_name: service-b
network_mode: default
ports:
- 8180:8080
links:
- service-a:srv_a


service-api:
container_name: service-api
environment:
- SERVER_URL=http://localhost:8180/myserver
- 8001:8001
links:
- service-b: srv_b

但是作为 spring boot 应用程序的 service-api 无法访问
service-b 尽管有链接。

我可以在使用浏览器时做到这一点。

我可以做些什么来调查缺乏连接的原因?

是否应该在 server_url 变量中以某种方式使用链接?

最佳答案

每个 Docker 容器都有自己的 IP 地址。从 service-api 容器的角度来看,localhost解析为自己的IP地址。

Docker-compose 为您的容器提供了从 docker compose 服务名称解析其他容器 IP 地址的能力。

尝试:

  service-api:
environment:
- SERVER_URL=http://service-b:8080/myserver


请注意,您需要连接到容器内部端口 ( 8080 ) 而不是 docker 主机上发布的匹配端口 ( 8180 )。

关于docker - 从 docker-compose 网络内部使用其 url 访问另一个服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55003036/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com