在 Trivy 的安装页面中没有提及 Windows。
我安装了适用于 Windows 的 Docker,因此 Docker 方法看起来很有前途,但有一些事情我不确定:
/var/run
和 $HOME/Library/Caches
目录?目的是扫描我使用 Docker for Windows 构建的图像。
docker pull aquasec/trivy:0.19.2
docker run --rm -v C:\Users\<your foldername>:/root/.cache/ aquasec/trivy:0.19.2 aquasec/trivy:0.19.2 python:3.4-alpine
安装了适用于 Windows 的 Docker Desktop 后,您可以打开终端(推荐使用 powershell 执行下一个命令)。
docker run --rm -v ${PWD}/tmp:/root/.cache/ -v //var/run/docker.sock:/var/run/docker.sock aquasec/trivy <image>
您可以使用此命令使用您的实际路径。它比使用绝对路径更好。另外,您可以将 docker 套接字安装到 trivy 来扫描下载的图像。
基本上我认为对于这种具体情况来说这是不可能实现的。最接近的方法是在 WSL 中运行 trivy,但从技术上讲,这并不能直接在 Windows 上运行。
git clone --depth 1 --branch v0.32.0 https://github.com/aquasecurity/trivy
cd trivy
go install .\cmd\trivy
首先,我使用 WSL 扫描 Windows 容器。 最后,我使用 go 编译器构建了 trivy.exe。
这2种方法都效果很好。
能够通过运行以下命令进行清单扫描来运行扫描:
docker run --rm -v C:/projects/abc:/test aquasec/trivy:latest --exit-code 0 --severity UNKNOWN,LOW,MEDIUM,HIGH,CRITICAL --format template --template "@contrib /html.tpl" -o /test/manifest-scanning-report.html 配置 /test/k8s_dir
这将在C:/projects文件夹下生成一个manifest-scanning-report.html。
上面的答案有点过时了。这是正确的,稍加修改。
在 Windows 上打开 Git Bash Shell 执行以下命令:
docker pull aquasec/trivy:latest
docker run --rm -v [YourLocalDir]:/root/.cache/ aquasec/trivy:latest [COMMAND_TO_RUN] [YOUR_IMAGE_NAME]
例如如果您想在 docker 映像上运行扫描,请运行以下命令。
docker run --rm -v ./:/root/.cache/ aquasec/trivy:latest image ubuntu:22.04
您还可以通过更改 COMMAND_TO_RUN 来扫描文件系统、kubernetes 和其他内容。 参考文档:https://aquasecurity.github.io/trivy/v0.22.0/getting-started/cli/