极狐GitLab 容器镜像仓库
- Tier: 基础版, 专业版, 旗舰版
- Offering: JihuLab.com, 私有化部署
您可以使用集成的容器镜像仓库来存储每个极狐GitLab项目的容器镜像。
要为您的极狐GitLab实例启用容器镜像仓库,请参阅管理员文档。
如果您从 Docker Hub 拉取容器镜像,可以使用极狐GitLab Dependency Proxy来避免速率限制并加速您的流水线。
查看容器镜像仓库
您可以查看项目或群组的容器镜像仓库。
- 在左侧边栏中,选择 搜索或转到 并找到您的项目或群组。
- 选择 部署 > 容器仓库。
您可以搜索、排序、过滤和删除您的容器镜像。您可以通过从浏览器中复制 URL 来共享过滤后的视图。
查看容器镜像仓库中特定容器镜像的标签
您可以使用容器镜像仓库的 Tag Details 页面来查看与给定容器镜像相关的标签列表:
- 在左侧边栏中,选择 搜索或转到 并找到您的项目或群组。
- 选择 部署 > 容器镜像仓库。
- 选择您的容器镜像。
您可以查看有关每个标签的详细信息,例如发布时间、消耗的存储空间,以及清单和配置摘要。
您可以在此页面上搜索、按标签名称排序并删除标签。您可以通过从浏览器中复制 URL 来共享过滤后的视图。
存储使用情况
查看容器镜像仓库的存储使用情况,以跟踪和管理跨项目和群组的容器存储库的大小。
有关更多信息,请参阅查看容器镜像仓库使用情况。
使用容器镜像仓库中的容器镜像
要下载并运行托管在容器镜像仓库中的容器镜像:
-
在左侧边栏中,选择 搜索或转到 并找到您的项目或群组。
-
选择 部署 > 容器镜像仓库。
-
找到您要使用的容器镜像并选择 拷贝镜像路径 (
)。 -
使用 docker run 和复制的链接:
shelldocker run [options] registry.example.com/group/project/image [arguments]
您必须使用容器镜像仓库进行身份验证才能从私有存储库下载容器镜像。
容器镜像的命名约定
您的容器镜像必须遵循以下命名约定:
plaintext<registry server>/<namespace>/<project>[/<optional path>]
例如,如果您的项目是 gitlab.example.com/mynamespace/myproject,那么您的容器镜像必须命名为 gitlab.example.com/mynamespace/myproject。
您可以将其他名称追加到容器镜像名称的末尾,最多可以达到两级深度。
例如,这些都是项目名为 myproject 的容器镜像的有效名称:
plaintextregistry.example.com/mynamespace/myproject:some-tag
plaintextregistry.example.com/mynamespace/myproject/image:latest
plaintextregistry.example.com/mynamespace/myproject/my/image:rc1
移动或重命名容器镜像仓库存储库
容器存储库的路径始终与相关项目的存储库路径匹配,因此无法仅重命名或移动容器镜像仓库。相反,您可以重命名或移动整个项目。
在 JihuLab.com 上,仅支持重命名已填充容器存储库的项目。
在极狐GitLab私有化部署实例中,您可以在移动或重命名群组或项目之前删除所有容器镜像。
禁用项目的容器镜像仓库
容器镜像仓库默认启用。
但是,您可以移除项目的容器镜像仓库:
- 在左侧边栏中,选择 搜索或转到 并找到您的项目。
- 选择 设置 > 通用。
- 展开 可见性、项目功能、权限 部分并禁用 容器镜像仓库。
- 选择 Save changes。
项目侧边栏中的 部署 > 容器镜像仓库 条目将被移除。
更改容器镜像仓库的可见性
默认情况下,容器镜像仓库对所有有项目访问权限的人可见。但是,您可以更改项目的容器镜像仓库的可见性。
有关此设置授予用户的权限的更多信息,请参阅容器镜像仓库可见性权限。
-
在左侧边栏中,选择 搜索或转到 并找到您的项目。
-
选择 设置 > 通用。
-
展开 可见性、项目功能、权限 部分。
-
在 容器镜像仓库 下,从下拉列表中选择一个选项:
-
任何人都可访问 (默认):容器镜像仓库对所有有项目访问权限的人可见。如果项目是公共的,则容器镜像仓库也是公共的。如果项目是内部或私有的,则容器镜像仓库也是内部或私有的。
-
仅项目成员:容器镜像仓库仅对至少具有 Reporter 角色的项目成员可见。这种可见性类似于将容器镜像仓库可见性设置为 任何人都可访问 的私有项目的行为。
-
-
选择 保存变更。
容器镜像仓库可见性权限
查看容器镜像仓库和拉取容器镜像的能力由容器镜像仓库的可见性权限控制。您可以通过界面上的可见性设置或API更改可见性。其他权限例如更新容器镜像仓库以及推送或删除容器镜像不受此设置影响。然而,禁用容器镜像仓库将禁用所有容器镜像仓库操作。
匿名用户 (互联网上的所有人) | Guest | Reporter, Developer, Maintainer, Owner | ||
---|---|---|---|---|
公共项目,容器镜像仓库可见性设置为 Everyone With Access (UI) 或 enabled (API) | 查看容器镜像仓库 并拉取镜像 | 是 | 是 | 是 |
公共项目,容器镜像仓库可见性设置为 Only Project Members (UI) 或 private (API) | 查看容器镜像仓库 并拉取镜像 | 否 | 否 | 是 |
内部项目,容器镜像仓库可见性设置为 Everyone With Access (UI) 或 enabled (API) | 查看容器镜像仓库 并拉取镜像 | 否 | 是 | 是 |
内部项目,容器镜像仓库可见性设置为 Only Project Members (UI) 或 private (API) | 查看容器镜像仓库 并拉取镜像 | 否 | 否 | 是 |
私有项目,容器镜像仓库可见性设置为 Everyone With Access (UI) 或 enabled (API) | 查看容器镜像仓库 并拉取镜像 | 否 | 否 | 是 |
私有项目,容器镜像仓库可见性设置为 Only Project Members (UI) 或 private (API) | 查看容器镜像仓库 并拉取镜像 | 否 | 否 | 是 |
任何项目,容器镜像仓库被 disabled | 所有容器镜像仓库操作 | 否 | 否 | 否 |
支持的镜像类型
History
- OCI 合规性在极狐GitLab 16.6 中引入。
容器镜像仓库支持 Docker V2 和开放容器倡议 (OCI)镜像格式。此外,容器镜像仓库符合 OCI 分发规范。
OCI 支持意味着您可以在仓库中托管基于 OCI 的镜像格式,例如 Helm 3+ chart 软件包。在极狐GitLab API 和界面中,镜像格式之间没有区别。
容器镜像签名
History
- 容器镜像签名显示在极狐GitLab 17.1 中引入。
在极狐GitLab容器镜像仓库中,您可以使用 OCI 1.1 manifest subject 字段将容器镜像与 Cosign 签名 关联。您可以在不必搜索该签名标签的情况下查看与其关联的容器镜像一起的签名信息。
当查看容器镜像的标签时,您会看到每个具有关联签名的标签旁边显示一个图标。要查看签名的详细信息,请选择该图标。
前提条件:
- 使用 Cosign v2.0 或更高版本对容器镜像进行签名。
- 对于极狐GitLab私有化部署,您需要一个配置了元数据数据库的极狐GitLab容器镜像仓库来显示签名。
使用 OCI 引用数据签署容器镜像
要使用 Cosign 向签名添加引用数据,您必须:
- 将 COSIGN_EXPERIMENTAL 环境变量设置为 1。
- 在签名命令中添加 --registry-referrers-mode oci-1-1。
例如:
shellCOSIGN_EXPERIMENTAL=1 cosign sign --registry-referrers-mode oci-1-1 <container image>
虽然极狐GitLab容器镜像仓库支持 OCI 1.1 manifest subject 字段,但它并未完全实现 OCI 1.1 引用 API。