【问题标题】:Docker log network traffic during buildDocker 在构建期间记录网络流量
【发布时间】:2019-07-10 08:42:54
【问题描述】:

在 docker 中,我如何记录构建期间发生的所有网络流量。

我想我会修改我的 dockerfile 来监控和收集所有网络请求。例如来自 apt-get install 并安装 node 或 ruby​​gem 包

我可以修改 Dockerfile 以收集日志或以其他方式输出。

关于我如何做到这一点的任何建议?

【问题讨论】:

    标签: docker dockerfile


    【解决方案1】:

    所有网络流量 = 所有接口(包括loopback)和所有协议(不仅是http/https,您可以在其中通过代理使用日志记录)上的流量。在所有接口 (eth0, lo) 的每个 RUN 命令的开头,在后台启动 tcpdump。示例,它将所有数据包打印到stdout

    FROM alpine
    
    RUN apk add tcpdump
    
    # start tcpdumps in the background for each RUN
    RUN sh -c 'tcpdump -nnXSs 0 -i eth0 &' \
        && sh -c 'tcpdump -nnXSs 0 -i lo &' \
        && ping -c 5 google.com
    
    RUN sh -c 'tcpdump -nnXSs 0 -i eth0 &' \
        && sh -c 'tcpdump -nnXSs 0 -i lo &' \
        && apk add curl
    

    构建输出:

    ...
    Step 3/4 : RUN sh -c 'tcpdump -nnXSs 0 -i eth0 &'     && sh -c 'tcpdump -nnXSs 0 -i lo &'     && ping -c 5 google.com
     ---> Running in 63249712af4a
    PING google.com (216.58.204.78): 56 data bytes
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on lo, link-type EN10MB (Ethernet), capture size 262144 bytes
    listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
    64 bytes from 216.58.204.78: seq=0 ttl=127 time=17.529 ms
    13:01:09.987047 IP 8.8.4.4.53 > 172.17.0.2.43264: 41194 1/0/0 A 216.58.204.46 (44)
            0x0000:  4500 0048 7096 0000 7f11 12f0 0808 0404  E..Hp...........
            0x0010:  ac11 0002 0035 a900 0034 0472 a0ea 8180  .....5...4.r....
            0x0020:  0001 0001 0000 0000 0667 6f6f 676c 6503  .........google.
            0x0030:  636f 6d00 0001 0001 c00c 0001 0001 0000  com.............
            0x0040:  001e 0004 d83a cc2e 
    ...
    

    当然,您可以将这些日志发送到 Elasticsearch/Splunk/...,但您需要安装更多工具。从tcpdump 中排除此流量可能是个好主意。

    【讨论】:

      猜你喜欢
      • 2020-01-22
      • 1970-01-01
      • 2021-10-20
      • 2015-09-05
      • 2021-01-19
      • 1970-01-01
      • 2014-07-31
      • 2018-06-02
      相关资源
      最近更新 更多