極狐GitLab 是 GitLab 在中國的發行版,關于中文參考文檔和資料有:
- 極狐GitLab 中文文檔
- 極狐GitLab 中文論壇
- 極狐GitLab 官網
極狐GitLab 容器鏡像庫 (BASIC ALL)
您可以使用集成的容器鏡像庫,來存儲每個極狐GitLab 項目的容器鏡像。
要為您的極狐GitLab 實例啟用容器鏡像庫,請參閱管理員文檔。
NOTE:如果您從 Docker Hub 拉取容器鏡像,您還可以使用 GitLab Dependency Proxy 來避免遇到速率限制并加快流水線速度。
查看容器鏡像倉庫
您可以查看項目或群組的容器鏡像倉庫。
1.轉到您的項目或群組。
2.轉至 部署 > 容器鏡像庫。
您可以在此頁面上搜索、排序、過濾和刪除容器鏡像。您可以通過從瀏覽器復制 URL 來共享過濾視圖。
在容器鏡像倉庫中查看指定容器鏡像的標簽
您可以使用容器鏡像哭的 標簽詳情 頁面來查看與給定的容器鏡像關聯的標簽列表:
1.在左側邊欄中,選擇 搜索或轉到 并找到您的項目或群組。
2.在左側邊欄中,選擇 部署 > 容器鏡像庫。
3.選擇您的容器鏡像。
那你可以查看每個標簽的詳細信息,例如發布時間、消耗的存儲量以及清單和配置摘要。
您可以在此頁面上搜索、排序(按標簽名稱)并刪除標簽。
您可以通過從瀏覽器復制 URL 來共享過濾視圖。
使用來自容器鏡像倉庫的鏡像
要下載并運行托管在容器鏡像倉庫中的容器鏡像:
1.在左側導航欄,選擇 搜索或轉到 并找到您的項目或群組。
2.在左側導航欄,選擇 部署 > 容器鏡像庫。
3.找到您想要工作的容器鏡像,然后選擇 復制鏡像路徑 ({copy-to-clipboard})。
4.使用 docker run 命令,使用復制的鏈接:
docker run [選項] registry.example.com/group/project/image [參數]
NOTE:您必須使用身份驗證以從私有倉庫下載容器鏡像。
鏡像命名約定
鏡像遵循以下命名約定:
<registry URL>/<namespace>/<project>/<image>
例如,如果您的項目是 gitlab.example.com/mynamespace/myproject
,那么您的鏡像必須至少命名為 gitlab.example.com/mynamespace/myproject/my-app
。
您可以將其他名稱附加到鏡像名稱的末尾,深度最多為三層。
例如,這些都是名為 myproject
的項目中鏡像的所有有效鏡像名稱:
registry.example.com/mynamespace/myproject:some-tag
registry.example.com/mynamespace/myproject/image:latest
registry.example.com/mynamespace/myproject/my/image:rc1
移動或重命名容器鏡像庫鏡像
容器倉庫的路徑總是匹配與相關項目的倉庫路徑,因此只能移動或重命名容器鏡像庫,而不是項目本身。相反地,您可以重命名或移動整個項目。
重命名容器倉庫的項目僅在 JihuLab.com 上支持。
在私有化部署實例上,在移動或重命名群組和項目之前,您可以刪除所有容器鏡像。
為項目禁用容器鏡像倉庫
默認情況下,容器鏡像倉庫是啟用的。
然而,您可以為項目移除容器鏡像倉庫:
1.在左側導航欄,選擇 搜索或轉到 并找到您的項目。
2.選擇 設置 > 通用。
3.展開可見性、項目功能、權限部分并禁用 容器倉庫。
4.選擇 保存更改。
部署 > 容器鏡像庫 入口從項目的左側導航欄中刪除。
更改容器鏡像庫的可見性
默認情況下,每個有權訪問項目的人都可以看到容器鏡像倉庫。但是,您可以更改項目的容器鏡像倉庫的可見性。
有關此設置授予用戶的權限的更多詳細信息,請參閱 容器鏡像倉庫可見性權限。
1.在左側導航欄,選擇 搜索或前往 并找到您的項目。
2.選擇 設置 > 通用。
3.展開可見性、項目功能、權限部分。
4.在 容器鏡像庫 下,從下拉列表中選擇一個選項:
-
具有訪問權限的任何人(默認):容器鏡像倉庫對所有有權訪問項目的人可見。如果項目是公開的,那么容器鏡像倉庫也是公開的。如果項目是內部的或私有的,那么容器鏡像倉庫也是內部的或私有的。
-
僅項目成員:容器鏡像倉庫僅對具有報告者角色或更高角色的項目成員可見。這類似于將容器鏡像倉庫可見性設置為 具有訪問權限的任何人 的私有項目的行為。
5.選擇 保存修改。
容器鏡像庫可見性權限
查看 Container Registry 和拉取鏡像的能力由 Container Registry 的可見性權限控制。您可以通過 UI 上的可見性設置 或 API 更改。其它權限如更新 Container Registry、推送或刪除鏡像等不受此設置影響。但是,禁用 Container Registry 會禁用所有 Container Registry 操作。
匿名(互聯網上的任何人) | Guest | 報告者、開發者、維護者和所有者 | ||
---|---|---|---|---|
具有 Container Registry 可見性的公開項目 設置為 具有訪問權限的任何人 (UI) 或 enabled (API) | 查看容器鏡像庫 并拉取鏡像 | Yes | Yes | Yes |
具有 Container Registry 可見性的公開項目 設置為 僅項目成員 (UI) 或 private (API) | 查看容器鏡像庫 并拉取鏡像 | No | No | Yes |
具有 Container Registry 可見性的內部項目 設置為 具有訪問權限的任何人 (UI) 或 enabled (API) | 查看容器鏡像庫 并拉取鏡像 | No | Yes | Yes |
具有 Container Registry 可見性的內部項目 設置為 僅項目成員 (UI) 或 private (API) | 查看容器鏡像庫 并拉取鏡像 | No | No | Yes |
具有 Container Registry 可見性的私有項目 設置為 具有訪問權限的任何人 (UI) 或 enabled (API) | 查看容器鏡像庫 并拉取鏡像 | No | No | Yes |
具有 Container Registry 可見性的私有項目 設置為 僅項目成員 (UI) 或 private (API) | 查看容器鏡像庫 并拉取鏡像 | No | No | Yes |
容器鏡像庫設置為 disabled 的任何項目 | Container Registry 上的所有操作 | No | No | No |
支持的鏡像類型
- OCI 一致性引入于極狐GitLab 16.6。
容器鏡像倉庫支持 Docker V2 和 OCI 格式的鏡像。此外,容器鏡像倉庫遵循 OCI 分發規范。
OCI 支持意味著您可以在倉庫中托管 OCI 格式的鏡像,例如 Helm 3+ chart 軟件包。在極狐GitLab API 和 UI 中,沒有格式之間的區別。
容器鏡像簽名
- 容器鏡像簽名展示引入于極狐GitLab 17.1。
在極狐GitLab 容器鏡像倉庫中,您可以使用 OCI 1.1 manifest subject 字段來關聯具有Cosign 簽名的容器鏡像。
您可以在沒有搜索該簽名標簽的情況下查看與其關聯的容器鏡像的簽名信息。
當查看容器鏡像的標簽時,在每個具有關聯簽名的標簽旁邊顯示圖標。要查看簽名的詳細信息,選擇圖標。
先決條件:
- 要簽署容器鏡像,需要 Cosign v2.0 或更高版本。
- 對于私有化部署實例,您需要配置極狐GitLab 容器倉庫以使用元數據數據庫,以便顯示簽名。
用 OCI 引用數據簽名容器鏡像
要使用 Cosign 向簽名添加引用數據時,您必須:
- 設置
COSIGN_EXPERIMENTAL
環境變量為1
。 - 將
--registry-referrers-mode oci-1-1
添加到簽名命令中。
比如:
COSIGN_EXPERIMENTAL=1 cosign sign --registry-referrers-mode oci-1-1 <container image>
NOTE:盡管極狐GitLab 容器鏡像倉庫支持 OCI 1.1 manifest 的 subject
字段,但它不完全實現 OCI 1.1 Referrers API。