Python社区  »  docker

Docker中的“主机”和“链接”网络组合

Oliver Hader • 2 周前 • 31 次点击  

场景是构建一个 watcher 能够监听给定网络流量的容器 docker-compose 服务组合除此之外,我必须有可能 观察者 直接将数据包发送到专用服务。

我发现了 host 联网 观察者 基本上就是我要找的(包括可能有太多的关于Docker引擎管理的所有网络设备的信息)为了将通信直接指向任何服务,它似乎需要使用 link 设置-与 主办 网络。

当前 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 服务这个 观察者 可以通过使用 network_mode: host . 从例如。 ping first 不可能从内部 观察者 ,因此 观察者 正在使用例如。 ping 172.25.0.11 相反。

问题

  • 有没有更好的方法让“物理”访问发送到动态组合网桥的所有包 br-* 使用 tcpdump (目前通过使用 主办 网络连接)?
  • 有没有办法结合 主办 bridge 联网,例如使用不同的驱动程序,甚至自定义插件?我调查了司机 macvlan ipvlan (L2,实验功能打开 但无法监视所有组合服务的流量。

提前感谢任何反馈或提示。我用 overlay 对于我的场景来说,这感觉有点太多了(没有使用其中的大部分功能)。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/49239
 
31 次点击  
分享到微博