Share feedback
Answers are generated based on the documentation.

Docker 硬化镜像的构建方式

Docker 硬化镜像通过自动化流水线构建而成,该流水线监控上游源、应用安全更新并发布签名的制品。 本文档解释了基础 DHI 镜像和 DHI Enterprise 定制镜像的构建流程。

对于 DHI Enterprise 订阅用户,基础镜像和定制镜像的自动化安全更新流水线均受 SLA 承诺保障,包括针对关键和高危漏洞的 7 天 SLA。只有 DHI Enterprise 包含 SLA。DHI Free 提供安全基线,但不保证修复时间。

构建触发

构建会自动开始,无需手动触发。系统会监控变更,并在以下两种情况下启动构建:

上游更新

上游项目的新版本发布、软件包更新或 CVE 修复会触发基础镜像的重建。这些构建会经过质量检查,以确保安全性和可靠性。

监控更新

Docker 持续监控上游项目的新版本发布、软件包更新和安全公告。当检测到变更时,系统会自动将受影响的镜像加入重建队列,并使用符合 SLSA 构建级别 3 的构建系统进行构建。

Docker 使用三种策略来跟踪更新:

  • GitHub 发布:监控特定的 GitHub 仓库,当新版本发布时自动更新镜像定义。
  • GitHub 标签:跟踪 GitHub 仓库中的标签以检测新版本。
  • 软件包仓库:通过 Docker Scout 的软件包数据库监控 Alpine Linux、Debian 和 Ubuntu 的软件包仓库,以检测更新的软件包。

除了显式的上游跟踪外,Docker 还会监控传递依赖。当检测到软件包更新(例如,某个库的安全补丁)时,Docker 会自动识别并重建支持窗口内所有使用该软件包的镜像。

定制变更 DHI Enterprise

Subscription: Docker Hardened Images Enterprise

对您 OCI 制品定制的更新会触发您定制镜像的重建。

当您使用 DHI Enterprise 定制 DHI 镜像时,您的变更会被打包为叠加在基础镜像之上的 OCI 制品。Docker 会监控您的制品仓库,并在您推送更新时自动重建您的定制镜像。

重建过程会获取当前的基础镜像,应用您的 OCI 制品,对结果进行签名,并自动发布。您无需管理构建或为您的定制镜像维护 CI 流水线。

当它们所依赖的基础 DHI 镜像收到更新时,定制镜像也会自动重建,确保您的镜像始终包含最新的安全补丁。

构建流水线

以下部分描述了 Docker 硬化镜像的构建流水线架构和工作流,基于:

基础镜像流水线

每个 Docker 硬化镜像都通过自动化流水线构建:

  1. 监控:Docker 监控上游源的更新(新版本发布、软件包更新、安全公告)。
  2. 重建触发:检测到变更时,自动重建开始。
  3. AI 护栏:AI 系统获取上游差异并使用语言感知检查进行扫描。护栏专注于可能导致重大问题的高杠杆问题,例如颠倒的错误检查、忽略的失败、资源处理不当或可疑的贡献者活动。当发现潜在风险时,它会阻止 PR 自动合并。
  4. 人工审查:如果 AI 以高置信度识别出风险,Docker 工程师会审查标记的代码,复现问题,并决定采取适当措施。工程师通常会将修复贡献回上游项目,为整个社区改进代码。当修复在上游被接受后,DHI 构建流水线会立即应用补丁以保护客户,同时修复会通过上游发布流程进行。
  5. 测试:镜像会经过全面的兼容性和功能性测试。
  6. 签名和证明:Docker 对每个镜像进行签名,并生成证明(SBOM、VEX 文档、构建来源)。
  7. 发布:签名的镜像发布到 DHI 注册表,证明发布到 Docker Scout 注册表。
  8. 级联重建:如果任何定制镜像使用此基础镜像,它们的重建会自动触发。

Docker 能快速响应关键漏洞。通过从源代码构建关键组件,而不是等待打包更新,Docker 可以在上游修复后的几天内修补关键和高危 CVE,并发布带有新证明的更新镜像。对于 DHI Enterprise 订阅用户,这种快速响应受关键和高危漏洞的 7 天 SLA 保障。

下图显示了基础镜像的构建流程:

D o c k e r D H I | A I |

定制镜像流水线 DHI Enterprise

Subscription: Docker Hardened Images Enterprise

当您使用 DHI Enterprise 定制 DHI 镜像时,构建过程得以简化:

  1. 监控:Docker 监控您的 OCI 制品仓库的变更。
  2. 重建触发:当您向 OCI 制品推送更新,或基础 DHI 镜像更新时,自动重建开始。
  3. 获取基础镜像:获取最新的基础 DHI 镜像。
  4. 应用定制:将您的 OCI 制品应用到基础镜像。
  5. 签名和证明:Docker 对定制镜像进行签名,并生成证明(SBOM、VEX 文档、构建来源)。
  6. 发布:签名的定制镜像发布到 Docker Hub,证明发布到 Docker Scout 注册表。

Docker 自动处理整个过程,因此您无需管理定制镜像的构建。但是,您需要负责测试您的定制镜像并管理由您的 OCI 制品引入的任何 CVE。

下图显示了定制镜像的构建流程:

D O D o C o c I c k k e e r r H u b | | D H I