docker - 允许容器读取主机网络统计信息,但绑定到 docker 网络
问题描述
tl; 博士?直接跳到问题;)
背景与架构
在这个考虑到微服务架构设计的应用程序中,我们可以发现两个组件:
monitor
: 探测系统指标并通过 HTTP 报告它们controller
:读取报告的指标monitor
并根据配置文件中定义的规则采取行动。
+------------------------------------------------------+
| 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=host
monitor
(注意:我使用 docker-compose 但纯 docker 答案适合我)
解决方案
推荐阅读
- passwords - 询问密码要求总是一个好主意吗?
- bluetooth - esp32蓝牙几秒钟后断开连接
- r - 如何从面积图中删除空白(geom_area)
- r - R套索逻辑回归glmnet - 如何创建分层样本
- c++ - Crypto++ HexEncoder 无法始终如一地工作
- android-jetpack-compose - Jetpack Compose:无法解析堆栈
- sql - SQL中的动态减法
- java - 使用 jpa findall java 从表中仅获取一些属性
- c++ - NtCreateUserProcess 之后的 NtResumeThread
- php - Laravel 相当于 sql 日期时间转换