我在docker中有以下设置:
- 应用程序 (httpd)
- 流利的
- 弹性搜索
- 木花
应用程序的 logdriver 的配置描述的是 fluentd 容器。日志将保存在 ES 中并显示在 Kibana 中。
当 logdriver 配置为这样时,它可以工作:
web:
image: httpd
container_name: httpd
ports:
- "80:80"
links:
- fluentd
logging:
driver: "fluentd"
options:
fluentd-address: localhost:24224
tag: httpd.access
并且 fluentd 正在将其暴露的端口 24224 映射到主机的端口 24224 上。
fluentd:
build: ./fluentd
image: fluentd
container_name: fluentd
links:
- "elasticsearch"
ports:
- "24224:24224"
但我不想在主机网络上暴露我的流利程度。我想在 docker 网络中保持“私有”(我只想在主机网络上映射应用程序和 kibana),如下所示:
fluentd:
build: ./fluentd
image: fluentd
container_name: fluentd
links:
- "elasticsearch"
端口 24224 仍然暴露(在 dockerfile 中),但它没有映射到主机网络上。现在我想更改我的应用程序的日志驱动程序的配置: 日志记录:驱动程序:“fluentd”选项:流利的地址:流利的:24224 标签:httpd.access
所以 fluentd 是 fluentd 容器的名称,它们在同一个网络中,但应用程序无法与其建立连接。
failed to initialize logging driver: dial tcp: lookup fluentd
这可能是因为在撰写文件中的“链接”选项之前执行了日志记录选项?
有没有办法让这个工作?