Docker 强化镜像如何进行测试
目录
Docker 强化镜像 (DHI) 旨在实现安全、精简和生产就绪。为确保其可靠性和安全性,Docker 采用全面的测试策略,您可以使用签名证明和开放工具独立验证。
每个镜像都经过标准合规性、功能性和安全性测试。测试结果作为签名证明嵌入,可以使用 Docker Scout CLI 通过编程方式检查和验证。
测试策略概述
DHI 的测试过程主要关注两个方面
- 镜像标准合规性:确保每个镜像都符合严格的大小、安全性和兼容性标准。
- 应用程序功能:验证镜像中的应用程序功能是否正常。
镜像标准合规性
每个 DHI 都经过严格检查,以满足以下标准
- 最小攻击面:镜像构建得尽可能小,移除不必要的组件以减少潜在漏洞。
- 接近零的已知 CVE:使用 Docker Scout 等工具扫描镜像,确保其没有已知的常见漏洞和暴露 (CVE)。
- 多架构支持:DHI 针对多种架构(
linux/amd64和linux/arm64)构建,以确保广泛兼容性。 - Kubernetes 兼容性:镜像经过测试,可在 Kubernetes 集群中无缝运行,确保它们满足容器编排环境的要求。
应用程序功能测试
Docker 测试 Docker 强化镜像,以确保它们在典型使用场景中表现符合预期。这包括验证以下内容:
- 应用程序在容器化环境中成功启动和运行。
- 运行时行为符合上游预期。
- 构建变体(如
-dev镜像)支持常见的开发和构建任务。
目标是确保 DHI 在最常见的使用场景中开箱即用,同时保持强化、精简的设计。
自动化测试和 CI/CD 集成
Docker 将自动化测试集成到其持续集成/持续部署 (CI/CD) 管道中
- 自动化扫描:每个镜像构建都会触发自动化漏洞扫描和合规性检查。
- 可重现构建:构建过程设计为可重现,确保不同环境之间的一致性。
- 持续监控:Docker 持续监控新的漏洞并相应更新镜像,以维护安全标准。
测试证明
Docker 提供了一份测试证明,详细说明了每个 DHI 所经历的测试和验证过程。
查看和验证测试证明
您可以使用 Docker Scout CLI 查看和验证此证明。
使用
docker scout attest get命令和测试谓词类型$ docker scout attest get \ --predicate-type https://scout.docker.com/tests/v0.1 \ --predicate \ <your-namespace>/dhi-<image>:<tag> --platform <platform>例如:
$ docker scout attest get \ --predicate-type https://scout.docker.com/tests/v0.1 \ --predicate \ docs/dhi-python:3.13 --platform linux/amd64这包含测试列表及其结果。
示例输出
v SBOM obtained from attestation, 101 packages found v Provenance obtained from attestation { "reportFormat": "CTRF", "results": { "summary": { "failed": 0, "passed": 1, "skipped": 0, "start": 1749216533, "stop": 1749216574, "tests": 1 }, "tests": [ { ...验证测试证明签名。为确保证明真实并由 Docker 签名,请运行
docker scout attest get \ --predicate-type https://scout.docker.com/tests/v0.1 \ --verify \ <your-namespace>/dhi-<image>:<tag> --platform <platform>示例输出
v SBOM obtained from attestation, 101 packages found v Provenance obtained from attestation v cosign verify registry.scout.docker.com/docker/dhi-python@sha256:70c8299c4d3cb4d5432734773c45ae58d8acc2f2f07803435c65515f662136d5 \ --key https://registry.scout.docker.com/keyring/dhi/latest.pub --experimental-oci11 Verification for registry.scout.docker.com/docker/dhi-python@sha256:70c8299c4d3cb4d5432734773c45ae58d8acc2f2f07803435c65515f662136d5 -- The following checks were performed on each of these signatures: - The cosign claims were validated - Existence of the claims in the transparency log was verified offline - The signatures were verified against the specified public key i Signature payload ...
如果证明有效,Docker Scout 将确认签名并显示匹配的 cosign verify 命令。
要查看其他证明,例如 SBOM 或漏洞报告,请参阅验证镜像。