我正在尝试使用两个不同的 docker-compose.yml 文件设置应用程序环境。第一个在默认网络中创建服务 elastic-apm-stack_default
.为了访问两个 docker-compose 文件的服务,我使用了 external
第二个 docker-compose 文件中的命令。这两个文件看起来像这样:
# elastic-apm-stack/docker-compose.yml
services:
apm-server:
image: docker.elastic.co/apm/apm-server:6.2.4
build: ./apm_server
ports:
- 8200:8200
depends_on:
- elasticsearch
- kibana
...
# sockshop/docker-compose.yml
services:
front-end:
...
...
networks:
- elastic-apm-stack_default
networks:
elastic-apm-stack_default:
external: true
现在
front-end
第二个文件中的服务需要向apm-server
发送数据第一个文件中的服务。因此,我使用了网址 http://apm-server:8200
在front-end
的源代码中服务,但我总是收到 connectionRefused 错误。如果我在单个 docker-compose 文件中定义所有服务,它可以工作,但我想将 docker-compose 文件分开。有人可以帮助我吗? :)
最佳答案
Docker 容器在网络中运行 172.17.0.1
所以,你可以使用 url
http://172.17.0.1:8200
访问您的 apm-server 容器。
关于docker - 如何使用 Docker-Compose 中的 URL 访问服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50473024/