假设我有2个yml文件,我通过docker-composite up运行。
efk.yml:
version: '3.3'
services:
fluentd:
image: fluentd
...
volumes:
- ./fluentd/etc:/fluentd/etc
depends_on:
- elasticsearch
ports:
- "24224:24224"
- "24224:24224/udp"
elasticsearch:
image: amazon/opendistro-for-elasticsearch:1.13.3
expose:
- 9200
ports:
- "9200:9200"
environment:
- "discovery.type=single-node"
kibana:
...
logging:
driver: "fluentd"
options:
fluentd-address: localhost:24224
tag: micro.kibana
(我省略了一些不相关的部分,我只需要记录)
app.yml:
version: '3.3'
services:
mysql:
image: mysql
..
logging:
driver: "fluentd"
options:
fluentd-address: fluentd:24224
# fluentd-async-connect: "true"
tag: micro.db
networks:
- default
app:
...
logging:
driver: "fluentd"
options:
fluentd-address: fluentd:24224
# fluentd-async-connect: "true"
tag: micro.php-fpm
networks:
- default
networks:
default:
external:
name: efk_default
我计划启动efk stack,最初像
docker-compose -p efk -f efk.yml up -d
然后:
docker-compose -p app -f app.yml up -d
我假设网桥网络efk_default将被创建,我可以从应用程序堆栈访问它(请参阅app.yml了解详情)。但应用程序堆栈无法解析网桥网络中的fluentd:24224,我在上面的应用程序命令中得到以下错误:
- 错误:对于应用程序无法启动服务应用程序:无法初始化日志驱动程序:拨号tcp:查找fluentd:名称解析暂时失败错误:启动项目时遇到错误。*
如果我使用smth dumb比如localhost:24224来启动它,通过docker network inspect我可以看到一个网络中的所有container,我试过在桥接网络中使用ip addr.,但是也不起作用。
在这个配置中是否可以有公共日志服务?如果可以,我做错了什么?
先谢了。
1条答案
按热度按时间k4emjkb11#
下面是我做的测试:
compose1.yml
compose2.yml
运行命令:
并输出Nginx欢迎页面。