在Docker构建过程中生成访问的每个外部URL列表

43次阅读
没有评论

问题描述

想要在Docker构建过程中生成一个包含每个访问的URL(或相应的IP)的.txt文件。用户已尝试过一些方法,但是希望能找到更简单的解决方案。

解决方案

请注意以下操作可能会因版本差异而有所变化。在执行任何操作之前,请确保已做好备份。

方案1: 使用Wireshark或tcpdump捕获网络数据包

你可以使用网络抓包工具,如Wireshark、tshark或tcpdump,来捕获Docker守护程序在运行Docker构建时产生的网络数据包。捕获数据后,需要对捕获的数据进行过滤和处理,以提取出所需的URL信息。

步骤:

  1. 安装并配置所选的网络抓包工具,如Wireshark、tshark或tcpdump。
  2. 在终端中运行适当的命令以开始捕获数据包。例如,使用tcpdump可以这样运行:
    sudo tcpdump -i eth0 -w capture.pcap
    这将在文件capture.pcap中保存捕获的数据包。
  3. 在Docker构建期间执行相关操作,以触发对外部URL的访问。
  4. 停止捕获数据包的进程。
  5. 使用过滤和处理工具,如Wireshark、tshark或其他脚本,从捕获的数据包中提取出所需的URL信息。

方案2: 使用本地重定向代理服务

你可以设置一个本地重定向代理服务,将所有的网络请求重定向到这个代理服务,然后再从代理服务中获取所有的URL信息。

步骤:

  1. 安装并配置一个本地重定向代理服务,如Fiddler、Charles Proxy等。
  2. 配置操作系统或浏览器,使其将网络请求发送到本地代理服务。
  3. 在Docker构建期间执行相关操作,以触发对外部URL的访问。
  4. 从本地代理服务的日志中提取出所需的URL信息。

方案3: 使用日志解析

你可以尝试解析Docker构建过程中生成的日志,从中提取出包含URL的信息。

步骤:

  1. 在Docker构建时使用docker build命令,并将构建日志输出到文件中。例如:
    docker build --no-cache --progress=plain . &> build.log
  2. 使用适当的脚本或工具,如正则表达式,从构建日志中提取出包含URL的行。
    例如,你可以使用类似以下的正则表达式来匹配URL:
    (http|ftp|https):\/\/([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:\/~+#-]*[\w@?^=%&\/~+#-])
  3. 对提取出的URL进行筛选和处理,以生成一个干净的URL列表。

请注意,以上方案均有各自的优缺点,具体选择取决于你的需求和偏好。同时,不同方案可能在特定网络环境或操作系统上的设置上有所不同。

总结

在Docker构建过程中生成外部URL的访问列表可以通过捕获网络数据包、使用本地重定向代理服务或解析构建日志来实现。选择适合你需求的方案,并根据具体情况进行配置和调整,以获得所需的URL信息。

正文完