Docker中的`host`和`link`组合网络

问题描述 投票:1回答:1

该方案是建立一个watcher容器,该容器能够侦听给定docker-compose服务组合上的任何网络流量。除此之外,我还必须watcher直接将数据包发送到专用服务。

[我发现host上的watcher联网基本上是我想要的(包括可能对Docker引擎管理的所有网络设备包含太多信息的影响)。为了将通信直接定向到任何服务,似乎需要使用link设置-与host网络相矛盾。

当前docker-compose.yaml

https://github.com/ohader/docker-watcher-demo处有完整的配置)

version: "3.7"

services:
  watcher:
    build:
      context: ./custom
    network_mode: host
    entrypoint: "tcpdump -i any"

  first:
    build:
      context: ./custom
    networks:
      default:
        ipv4_address: 172.25.0.11
    entrypoint: "sleep infinity"

  second:
    build:
      context: ./custom
    networks:
      default:
        ipv4_address: 172.25.0.22
    entrypoint: "ping first"

networks:
  default:
    ipam:
      driver: default
      config:
        - subnet: "172.25.0.0/16"

基本上second服务正在ping first服务。 watcher可以使用network_mode: host进行监视。由于ping firstwatcher内部是不可能的,因为IP地址已经过硬编码,因此watcher正在使用例如改为ping 172.25.0.11

问题

  • 是否有更好的方法可以使所有使用br-*发送到动态组成的网桥tcpdump的包都具有“物理”访问权限(目前是通过host网络实现的?]]
  • 是否有一种方法可以组合hostbridge网络的功能,例如还通过使用不同的驱动程序甚至自定义插件?我研究了驱动程序macvlanipvlan(L2,Docker),但无法监控所有组合服务之间的流量。
  • 谢谢您的任何反馈或提示。我使用overlay网络研究了服务发现(领事等),这对我的场景来说感觉有点太多(不使用其中的大多数功能)。

该方案是构建一个监视程序容器,该容器能够侦听给定的docker-compose服务组合上的任何网络流量。除此之外,我还必须直接让观察者...

docker docker-compose tcpdump docker-networking
1个回答
0
投票

这是一个老问题,但我提供此作为参考。

© www.soinside.com 2019 - 2024. All rights reserved.