Apple Silicon Mac 上解决 Docker 平台不匹配和 QEMU 段错误问题
问题概述
许多用户在 Apple Silicon (M1/M2) Mac 上尝试运行 W3AF Docker 镜像时遇到了以下错误:
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
qemu: uncaught target signal 11 (Segmentation fault) - core dumped
这个问题的根本原因是架构不匹配 - 您正在尝试在基于 ARM 的 Apple Silicon Mac 上运行为 x86_64 架构构建的 Docker 镜像。
深入理解问题
架构差异
- Apple Silicon Mac 使用 ARM64 架构
- 大多数 Docker 镜像(包括 W3AF)是为 x86_64 架构构建的
- Docker 使用 QEMU 仿真来运行不同架构的镜像,但这并不总是完美工作
W3AF 的特殊性
W3AF 是一个相对老旧的安全工具,其依赖链复杂,特别是在仿真环境中容易出现问题。这导致了 QEMU 中的段错误,使容器无法正常运行。