关于 docker-scout
docker-scout 是一项指导技能,涵盖容器镜像漏洞扫描、SBOM 生成和策略评估,并介绍通过命令行及 CI 集成开展镜像安全检查。
主要功能
- 01CVE 漏洞扫描
- 02生成 SBOM
- 03策略评估
- 04CI/CD 集成指导
- 05修复建议与验证
适用场景
- 01部署前检查镜像漏洞
- 02生成 SPDX 格式的 SBOM
- 03通过策略检查阻止构建
- 04更新依赖后比较镜像
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ full-stack-skills/ docker-skills --skill docker-scout安装后在 Claude Code 中输入/docker-scout确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlexamples/01-quick-scan.md02-cicd-integration.mdreferences/01-scout-commands.md02-policy-evaluation.md详细介绍
Docker Scout — 镜像漏洞扫描与 SBOM
漏洞扫描、SBOM 生成和策略执行指南。
使用场景
用户提及以下内容时,始终使用此技能:
- “docker scout”“镜像扫描”“漏洞扫描”
- “CVE”“漏洞”“SBOM”
- “软件物料清单”
- “镜像安全分析”“镜像安全扫描”
- “策略评估”
核心命令
# Quick vulnerability overview
docker scout quickview myimage:tag
# Detailed CVE report
docker scout cves --format table myimage:tag
docker scout cves --only-fixed myimage:tag # Show only fixable CVEs
docker scout cves --severity critical,high myimage:tag
# SBOM (Software Bill of Materials)
docker scout sbom myimage:tag # SPDX format
docker scout sbom --format cyclonedx myimage:tag # CycloneDX format
# Compare two images
docker scout compare myimage:v1 --to myimage:v2
# Policy evaluation
docker scout policy myimage:tag
CVE 严重级别
| 级别 | 操作 |
|---|---|
| 严重 | 立即修复 |
| 高 | 在当前迭代中修复 |
| 中 | 安排修复 |
| 低 | 持续监控 |
| 未指定 | 进行审查 |
CI/CD 集成
GitHub Actions
- name: Docker Scout
uses: docker/scout-action@v1
with:
command: cves,compare
image: ${{ steps.meta.outputs.tags }}
compare-to: registry/${{ env.IMAGE_NAME }}:latest
修复工作流
1. docker scout cves myimage:tag → Identify CVEs
2. Check if fixable: --only-fixed shows which have patches
3. Update base image: FROM alpine:3.20 (newer version)
4. Update dependencies: npm update / pip install --upgrade / apt upgrade
5. Rebuild: docker build -t myimage:v2 .
6. Verify: docker scout compare myimage:v1 --to myimage:v2
工作流 — 推荐扫描流程
步骤 1:快速扫描:docker scout quickview <image> 获取 CVE 摘要
步骤 2:详细分析:docker scout cves --only-severity critical,high <image>
步骤 3:查看建议:docker scout recommendations <image> 获取修复方案
步骤 4:修复并重建:更新基础镜像/依赖 → docker build → 再次扫描验证
步骤 5:CI 集成:docker/scout-action + 策略门禁阻断
注意事项 — 常见陷阱
- Scout 与 scan 的区别:
docker scan(基于 Snyk,已弃用)。→ 解决方法:始终改用docker scout;卸载旧的docker scan插件。 - 只扫描、不修复:Scout 会显示 CVE,但不会修复。→ 解决方法:使用
docker scout recommendations <image>获取修复建议;更新基础镜像,或使用较新版本的依赖重新构建。 - 基础镜像 CVE:许多 CVE 来自基础镜像。→ 解决方法:
docker pull alpine:3.20(更新基础镜像);固定摘要以避免意外降级;使用docker scout cves alpine:3.20持续监控。 - 跳过多阶段构建:扫描器需要访问所有构建阶段。→ 解决方法:确保所有阶段产物都已通过
COPY --from=...正确复制;必要时为中间阶段添加标签。
边界 — 能力边界(适用与不适用场景)
| 分类 | 场景 | 说明 |
|---|---|---|
| ✅ 能做 | CVE 漏洞扫描 | CLI:docker scout cves + quickview |
| ✅ 能做 | SBOM 生成 | docker scout sbom --format spdx |
| ✅ 能做 | 策略评估与 CI 阻断 | 策略评估 + GitHub Actions |
| ⚠️ 需条件 | 私有仓库扫描 | 需要 Docker Scout 订阅 |
| ⚠️ 需条件 | 跨组织比较 | 需要 Scout Dashboard(Web UI) |
| ❌ 超范围 | 运行时安全 | 使用 docker-security |
| ❌ 超范围 | 第三方扫描器(Trivy/Grype) | 各工具需单独使用 |
| ❌ 超范围 | 修复漏洞(更新依赖) | 由开发者自行完成 |
不适用此技能的场景
| ❌ 跳过 | ✅ 改用 |
|---|---|
| 运行时安全(seccomp/AppArmor) | docker-security |
| 构建镜像 | docker-build |
| CI/CD 流水线设置 | docker-cicd |
| 仓库管理 | docker-hub |
安全与稳定性
- 在 CI/CD 中运行 Scout,在部署前发现漏洞。
- 订阅 Docker 安全公告,以接收零日漏洞通知。
- 未捆绑可执行脚本。仅提供指南。
📚 官方文档参考
🧭 Docker 技能之旅
📍 你在这里:
docker-scout— 镜像安全扫描
← 上一项:docker-security — 安全加固
→ 下一项:docker-hub — 仓库管理
常见问题
Q1:如何快速上手此技能? A:参考上方的快速开始章节,按步骤操作即可。
Q2:遇到版本不兼容问题怎么办? A:检查依赖版本,使用 lock 文件锁定,参考常见陷阱章节。
Q3:如何在生产环境使用? A:参考最佳实践章节,确保配置正确,做好监控和日志。
Q4:如何优化性能? A:参考性能优化相关文档,使用缓存、索引等手段。
Q5:如何贡献或反馈问题? A:在 GitHub 仓库提交 Issue 或 Pull Request。
Q6:是否支持中文? A:支持中文文档和中文注释,详见国内适配章节。