docker中多个后台tcpdump进程

我正在开发一个在docker中使用微服务的系统,我想分析在一个给定的dockernetworking中运行的不同docker容器的networkingstream量。

现在我有一个运行supervisord并连接到主机networking的容器来访问主机的接口,如下所示:

Dockerfile:

FROM debian ENV PCAP_READ_DIR '/data' RUN apt-get update && apt-get -y -q install \ tcpdump supervisor && \ apt-get clean COPY . /app/ WORKDIR /app CMD ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"] 

supervisord.conf:

 [supervisord] nodaemon=true [program:init_script] command=/app/init.sh numprocs=1 process_name=%(program_name)s_%(process_num)02d redirect_stderr: true autorestart: false startretries=0 

而我的init.sh脚本最终会在后台运行一个可变数量的tcpdump进程。

init.sh:

 ...etc.. while : do info "Watch the wlp3s0 interface" tcpdump -s 0 -c 10 -w "data/pcap/default_br-1234_%Y-%m-%d_%H:%M:%S.pcap" sleep 3 done 

容器运行正常,并且tcpdump甚至在前台运行,pcap被生成,但是没有数据反映主机上发生的networkingstream量(例如访问给定的网站)。

[编辑]:这是我执行运行docker容器的命令:

 docker run --rm -it \ -v "$PWD":/app \ -v "$PWD"/data:/app/data \ -v "$PWD"/supervisord.conf:/etc/supervisord.conf \ -p 1234:80 \ --network host \ --name docker-watcher \ -e MODE=development \ docker-watcher