应选用 Alpine 或 distroless 等精简基础镜像,控制层数≤4层,合并 RUN 指令并清理缓存;集成 Trivy、Docker Bench 等二进制工具至 /usr/local/bin;预置 compliance.rego 等策略文件于 /etc/audit-policy/;通过 ENTRYPOINT 封装 audit-image、audit-host 等标准化审计命令,统一输出 JSON 格式结果。

选好基础镜像并精简层级
用官方精简镜像起步,比如 alpine:3.20 或 distroless/static-debian12,避免带包管理器和 shell 的臃肿镜像。镜像层数控制在 4 层以内:基础系统、工具安装、配置文件复制、非 root 用户切换。多条 RUN 指令合并为一条,减少中间层残留;删除 apt 缓存、文档、man 页面等非运行必需内容。
集成核心合规检查工具链
把关键工具以二进制方式直接 COPY 进镜像,不依赖包管理器安装,确保版本可控、无额外依赖污染:
- Trivy:用于 CVE 扫描和策略评估(支持 --policy compliance.rego)
- Docker Bench for Security:检查宿主机 Docker 引擎配置是否符合 CIS 基线
- Anchore CLI:对接本地或远程 Anchore Engine,执行策略评估与报告生成
- syft + grype:作为轻量替代方案,用于软件成分分析与漏洞匹配
所有工具统一放在 /usr/local/bin/,加可执行权限,并验证 PATH 可识别。
预置合规策略与配置模板
把企业级合规要求固化进镜像,不是靠运行时传参临时指定:
- 内置 compliance.rego 策略文件,禁止含 log4j-core ≥2.14.1、禁止 root 运行、禁止 CAP_SYS_ADMIN 等硬性规则
- 附带 .trivyignore,标记已知低风险误报 CVE(如不影响医疗数据处理的 glibc 边界问题)
- 预置 docker-bench-security 的自定义配置 JSON,跳过不适用项(如不检查 Swarm 相关配置)
这些文件放在 /etc/audit-policy/ 下,工具默认读取路径,无需每次手动指定。
设计标准化审计入口与输出规范
通过 ENTRYPOINT 封装常用审计场景,让使用者只需一条命令即可触发完整检查:
- audit-image:对传入的本地镜像 tar 包或 registry 地址做 Trivy+syft 全面扫描
- audit-host:挂载宿主机 /var/run/docker.sock 后运行 docker-bench-security
- audit-policy:调用 anchore-cli 对指定镜像执行预置 bundle 策略评估
所有命令统一输出 JSON 格式结果到 stdout,便于 CI/CD 解析;错误信息走 stderr,退出码严格区分:0=全通过,1=策略失败,2=工具异常。











