首页 > 解决方案 > 允许容器读取主机网络统计信息,但绑定到 docker 网络

问题描述

tl; 博士?直接跳到问题;)

背景与架构

在这个考虑到微服务架构设计的应用程序中,我们可以发现两个组件:

+------------------------------------------------------+
| host /                                               |
+-----/                                                |
|                                                      |
|   +-----------------+        +-------------------+   |
|   | monitor /       |        | controller /      |   |
|   +--------/        |        +-----------/       |   |
|   |  +----------+   |        |  +-------------+  |   |
|   |  | REST :80 |>--+--------+->| application |  |   |
|   |  +----------+   |        |  +-------------+  |   |
|   +-----------------+        +-------------------+   |
|                                                      |
+------------------------------------------------------+

Docker的麻烦

我发现monitor能够读取非 docker 网络堆栈的网络统计信息的唯一方法是使用--network=host. 以下问题假设这是唯一的解决方案。如果(幸运地)我弄错了,请用替代方法回答。

version: "3.2"
services:
  monitor:
    build: monitor
    network_mode: host
  controller:
    build: controller
    network_mode: host

问题

monitor即使它从主机网络堆栈中读取统计信息,是否有办法在 docker 网络上提供其报告?

或者,即使它连接到哪个是controller,有没有办法打开?--network=hostmonitor

(注意:我使用 docker-compose 但纯 docker 答案适合我)

标签: dockerdocker-compose

解决方案


推荐阅读