将映像推送到 Harbor,通过基于角色的访问权限控制、自动漏洞扫描和简化的映像管理,为容器化应用提供增强的安全性。如需将本地映像推送到 Harbor 实例,请使用仓库名称为其添加标记,然后推送该映像。
准备工作
如需推送映像,您必须为环境配置必要的资源和权限,包括现有 Harbor 项目。如需了解详情,请参阅创建 Harbor 项目。
所需 IAM 角色
如需将映像推送到 Harbor 注册表实例,请与您的 IAM 项目管理员联系,请求以下角色:
- Harbor Instance Viewer (
harbor-instance-viewer):获取、列出和监视项目命名空间中的 Harbor 实例。此角色包含查看现有 Harbor 实例详细信息所需的权限,以便您检索推送映像所需的注册表网址。
所需的 Harbor RBAC 角色
与 GDC IAM 角色不同,推送映像需要 Harbor 内部基于角色的访问控制 (RBAC) 系统中的特定权限。向管理员请求必要的权限。仅请求特定任务所需的角色,以强制执行最小权限访问。
- 开发者:需要将映像推送到 Harbor 代码库。如需详细了解所有可用角色,请参阅有关按角色划分的用户权限的 Harbor 文档:https://goharbor.io/docs/2.12.0/administration/managing-users/user-permissions-by-role/。
为本地映像添加标签
请按照以下步骤使用代码库名称标记本地映像:
- 您必须通过 Harbor 实例的身份验证。如需了解详情,请参阅配置 Docker 身份验证以访问 Harbor 注册表实例。
设置映像的名称。完整映像名称的格式为:
INSTANCE_URL/HARBOR_PROJECT_NAME/IMAGE替换以下内容:
INSTANCE_URL:Harbor 实例的网址。例如harbor-1.org-1.zone1.google.gdc.test。使用 GDC 控制台或 gdcloud CLI 获取 Harbor 实例的网址。HARBOR_PROJECT_NAME:Harbor 项目的名称。例如my-project.。IMAGE_NAME:映像的名称。例如nginx.
完整映像名称的示例如下所示:
harbor-1.org-1.zone1.google.gdc.test/my-project/nginx使用代码库名称标记本地映像:
docker tag SOURCE-IMAGE INSTANCE_URL/HARBOR_PROJECT_NAME/IMAGE:TAG
替换以下内容:
SOURCE-IMAGE:本地映像名称或映像 ID。例如nginx。TAG:标记名称。例如staging。如果您未指定标记,Docker 默认会应用最新标记。
将带有标记的映像推送到 Harbor 注册表实例
为映像添加标记后,将其推送到 Harbor 注册表实例:
- 确保您已向 Harbor 实例进行身份验证。
- 使用以下命令推送带有标记的映像:
docker push
INSTANCE_URL/HARBOR_PROJECT_NAME/IMAGE:TAG
推送映像后,该映像会存储在指定的实例和 Harbor 项目中。
推送映像后,前往 Harbor 实例界面查看映像。
后续步骤
将映像推送到 Harbor 注册表后,您可以将其拉取到本地环境进行验证。您还可以配置标记保留规则,以自动维护代码库并查看安全扫描结果,从而检测漏洞: