镜像 Docker 强化映像存储库

订阅: Docker 强化映像

在使用 Docker 强化映像 (DHI) 之前,您必须将其存储库镜像到您的组织。只有组织所有者才能执行此操作。镜像后,该映像将在您的组织命名空间中可用,有权访问的用户可以开始拉取和使用它。

镜像的存储库会自动保持最新。Docker 会持续同步来自上游 DHI 目录的新标签和映像更新,因此您始终可以访问最新的安全版本。

先决条件

  • 要管理镜像,您必须是组织所有者
  • 您的组织必须注册才能使用 Docker 强化映像。

镜像映像存储库

要镜像 Docker 强化映像存储库

  1. 前往 Docker Hub 并登录。
  2. 选择我的 Hub
  3. 在命名空间下拉菜单中,选择有权访问 DHI 的组织。
  4. 选择强化映像 > 目录
  5. 选择一个 DHI 存储库以查看其详细信息。
  6. 选择镜像到存储库并按照屏幕上的说明进行操作。

所有标签完成镜像可能需要几分钟。映像镜像完成后,“镜像到存储库”按钮将变为“在存储库中查看”。选择“在存储库中查看”会打开一个下拉列表,其中包含该映像已镜像到的存储库。在此下拉列表中,您可以:

  • 选择一个现有的镜像存储库以查看其详细信息
  • 再次选择镜像到存储库以将映像镜像到额外的存储库

镜像存储库后,该存储库将以您指定的名称(前缀为 dhi-)出现在您组织的存储库列表中。它将继续接收更新的映像。

Repository list with mirrored repository showing
重要

镜像存储库的可见性必须保持私有。将其可见性更改为公共将停止更新的镜像。

镜像后,映像存储库将像 Docker Hub 上的任何其他私有存储库一样运行。有权访问存储库的团队成员现在可以拉取和使用该映像。要了解如何管理访问、查看标签或配置设置,请参阅存储库

用于同步和警报的 Webhook 集成

为了使外部注册表或系统与您的镜像 Docker 强化映像保持同步,并在更新发生时接收通知,您可以在 Docker Hub 中镜像存储库上配置webhook。每当推送或更新新映像标签时,webhook 都会向您定义的 URL 发送 POST 请求。

例如,您可以配置一个 webhook,以便在镜像新标签时调用 CI/CD 系统 https://ci.example.com/hooks/dhi-sync。此 webhook 触发的自动化可以从 Docker Hub 拉取更新的映像并将其推送到内部注册表,例如 Amazon ECR、Google Artifact Registry 或 GitHub Container Registry。

其他常见的 webhook 用例包括

  • 触发验证或漏洞扫描工作流
  • 签名或推广映像
  • 向下游系统发送通知

Webhook 负载示例

当 webhook 触发时,Docker Hub 会发送如下 JSON 负载

{
  "callback_url": "https://registry.hub.docker.com/u/exampleorg/dhi-python/hook/abc123/",
  "push_data": {
    "pushed_at": 1712345678,
    "pusher": "trustedbuilder",
    "tag": "3.13-alpine3.21"
  },
  "repository": {
    "name": "dhi-python",
    "namespace": "exampleorg",
    "repo_name": "exampleorg/dhi-python",
    "repo_url": "https://hub.docker.com/r/exampleorg/dhi-python",
    "is_private": true,
    "status": "Active",
    ...
  }
}

停止镜像映像存储库

只有组织所有者才能停止镜像存储库。停止镜像后,存储库将保留,但不再接收更新。您仍然可以拉取最后镜像的映像,但存储库将不会从原始存储库接收新标签或更新。

要停止镜像映像存储库

  1. 前往 Docker Hub 并登录。
  2. 选择我的 Hub
  3. 在命名空间下拉菜单中,选择有权访问 DHI 的组织。
  4. 选择强化镜像 > 管理
  5. 在要停止镜像的存储库的最右侧列中,选择菜单图标。
  6. 选择停止镜像

停止镜像存储库后,您可以选择另一个 DHI 存储库进行镜像。

将 Docker Hub 中的映像镜像到另一个注册表

将 Docker 强化映像存储库镜像到 Docker Hub 上的组织命名空间后,您可以选择将其镜像到另一个容器注册表,例如 Amazon ECR、Google Artifact Registry、GitHub Container Registry 或私有 Harbor 实例。

您可以使用任何标准工作流,包括

以下示例演示了如何使用 Docker CLI 拉取镜像的 DHI 并将其推送到另一个注册表

# Authenticate to Docker Hub (if not already signed in)
$ docker login

# Pull the image from your organization's namespace on Docker Hub
$ docker pull <your-namespace>/dhi-<image>:<tag>

# Tag the image for your destination registry
$ docker tag <your-namespace>/dhi-<image>:<tag> registry.example.com/my-project/<image>:<tag>

# Push the image to the destination registry
# You will need to authenticate to the third-party registry before pushing
$ docker push registry.example.com/my-project/<image>:<tag>
重要

为了继续接收映像更新并保留对 Docker 强化映像的访问,请确保推送到其他注册表的任何副本都保持私有。

镜像映像时包含证明

Docker 强化映像已签名并包含提供元数据(例如构建来源和漏洞扫描结果)的相关证明。这些证明作为 OCI 工件存储,默认情况下在使用 Docker CLI 镜像映像时不会包含。

要在将 DHI 复制到另一个注册表时保留完整的安全上下文,您必须明确包含证明。一个工具是 regctl,它支持复制映像及其关联的工件。

有关如何使用 regctl 复制映像及其关联工件的更多详细信息,请参阅regclient 文档

接下来做什么

镜像映像存储库后,您可以开始使用映像

© . This site is unofficial and not affiliated with Kubernetes or Docker Inc.