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 或漏洞報告,請參閱驗證映象。