trivy可直接扫描本地docker镜像识别critical/high漏洞,无需守护进程或推送仓库;支持--severity过滤、json/markdown报告输出,并能结合docker scout定位构建层风险及dockerscan实现离线多维检查。

直接扫描本地已存在的镜像,是发现高危漏洞最直接的方式。不需要推送、不依赖远程仓库,只要镜像在本地 Docker daemon 中,就能快速识别 CRITICAL/HIGH 级别风险。
用 Trivy 快速扫描本地镜像
Trivy 是目前最轻量、最可靠的本地扫描工具,无需启动容器、不依赖 Docker daemon 运行时,支持直接解析镜像层:
- 确保已安装 Trivy(推荐用官方脚本:
curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin) - 首次运行会自动下载漏洞数据库;后续扫描复用本地缓存,速度快
- 执行命令只关注高危项:
trivy image --severity CRITICAL,HIGH myapp:latest - 如需导出结构化结果,加参数:
--format json --output report.json或--format table > report.txt
用 Docker Scout 查看构建层级风险
Docker Scout 内置在较新版本 Docker CLI 中,能精准定位漏洞来自哪一层、哪条指令:
- 先确认 Docker CLI 版本 ≥ 24.0(
docker version),并登录账号(docker login) - 运行:
docker scout cves myapp:latest—— 显示所有高危 CVE 及影响包 - 进一步分析配置风险:
docker scout config myapp:latest—— 检出硬编码密码、缺失 USER、EXPOSE 敏感端口等问题 - 生成可读报告:
docker scout report myapp:latest --format markdown > report.md
离线或 CI 场景下用 dockerscan 深度检查
适合无网络环境、需同时查漏洞+密钥+配置合规性的场景:
- 安装后先更新漏洞库:
dockerscan update-db - 一次扫描覆盖三类风险:
dockerscan --scanners vulnerabilities,cis,secrets myapp:latest - 输出中明确标出:CIS 失败项(如 “No USER instruction”)、secrets 扫到的 .env 文件、vulnerabilities 对应的 RUN 指令层
- 提取高危漏洞方便自动化判断:
dockerscan -o json myapp:latest | jq '.vulnerabilities[] | select(.severity == "CRITICAL")'
结果解读关键点
扫出来不是终点,关键看懂哪些信息真正影响上线安全:
- 区分漏洞来源:是基础镜像自带(换 base 镜像最快)、构建时安装引入(精简 apt-get)、还是应用依赖带入(升级 pip/gradle 包)
- 紧盯 “Fixed in version” 字段:例如显示 fixed in 1.1.1t,说明升级 OpenSSL 到该版本即可闭环
- 留意 “Base image is outdated” 提示:这是性价比最高的修复路径,换一个更新的
python:3.11-slim常常消除数十个底层漏洞











