將映像檔推送至 Harbor,即可透過角色式存取控管、自動安全漏洞掃描,以及簡化的映像檔管理功能,強化容器化應用程式的安全性。如要將本機映像檔推送至 Harbor 執行個體,請使用存放區名稱標記映像檔,然後推送映像檔。
事前準備
如要推送映像檔,您必須為環境設定必要的資源和權限,包括現有的 Harbor 專案。詳情請參閱「建立 Harbor 專案」。
必要的 IAM 角色
如要將映像檔推送至 Harbor 登錄檔執行個體,請與 IAM 專案管理員聯絡,要求下列角色:
- Harbor 執行個體檢視者 (
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 執行個體驗證。詳情請參閱「設定 Harbor 登錄檔執行個體的 Docker 驗證」。
設定映像檔名稱。完整映像檔名稱的格式如下:
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 預設會套用 latest 標記。
將標記的映像檔推送至 Harbor 登錄檔執行個體
標記映像檔後,請將其推送至 Harbor 登錄檔執行個體:
- 請確認您已驗證 Harbor 執行個體。
- 使用下列指令推送已標記的映像檔:
docker push
INSTANCE_URL/HARBOR_PROJECT_NAME/IMAGE:TAG
推送映像檔時,映像檔會儲存在指定的執行個體和 Harbor 專案中。
推送映像檔後,請前往 Harbor 執行個體 UI 查看映像檔。
後續步驟
將映像檔推送至 Harbor 登錄檔後,您可以將映像檔提取至本機環境進行驗證。您也可以設定標記保留規則,自動維護存放區,並查看安全性掃描結果,偵測安全漏洞: