我们经常发布文档更新,此页面的翻译可能仍在进行中。有关最新信息,请访问英文文档。如果此页面上的翻译有问题,请告诉我们

关于 GitHub Container Registration

您可以使用 GitHub Container Registry 在 GitHub 上的组织或个人用户帐户中无缝托管和管理 Docker 容器映像。 GitHub Container Registry 允许您配置谁可以使用细粒度权限管理和访问包。

GitHub Packages 可用于 GitHub Free、GitHub Pro、组织的 GitHub Free,GitHub Team、GitHub Enterprise Cloud、GitHub Enterprise Server 2.22、GitHub One 及 GitHub AE。


GitHub Packages 不适用于使用旧版按仓库计划的帐户所拥有的私有仓库。 GitHub Packages 可用于 GitHub Free、GitHub Pro、组织的 GitHub Free、GitHub Team、GitHub Enterprise Cloud 和 GitHub One。 更多信息请参阅“[GitHub 的产品](/articles/github-s-products)”。

本文内容

注:GitHub Container Registry 目前处于公测阶段,可能会更改。 在测试阶段,存储和带宽是免费的。 要使用 GitHub Container Registry,您必须为您的帐户启用该功能。 更多信息请参阅“启用改进的容器支持”。

关于 GitHub Container Registry

使用容器注册表,您可以:

  • 将容器映像存储在组织和用户帐户中,而不是仓库中。
  • 设置独立于仓库权限和可见性的粒度权限和可见性。
  • 匿名访问公共容器映像。

要共享有关包使用的上下文,可以将仓库链接到 GitHub 上的容器映像。 更多信息请参阅“将仓库连接到容器映像”。

GitHub Container Registry 与其他包注册表具有不同的托管位置、权限和可见性。

包注册表GitHub Container Registry
托管位置您可以在一个仓库中托管多个包。您可以在一个组织或用户帐户中托管多个容器映像。
权限每个包都继承托管包的仓库的权限。

例如,对仓库有读取权限的任何人都可以将包安装为项目中的依赖项,有写入权限的任何人都可以发布新的包版本。
对于每个容器映像,您可以选择其他人具有的访问权限级别。 容器映像访问的权限与组织和仓库权限不同。
可见性您可以在公共仓库中发布包(公共包)以与所有人GitHub共享,或者在私有仓库(私有包)中与协作者或组织共享。您可以设置每个容器映像的可见性。 私有容器映像仅对组织内被授予访问权限的人员或团队可见。 公共容器映像对任何人都可见。

更多信息请参阅“关于 GitHub Container Registry 的范围和权限”。

支持的格式

container registry 目前支持以下容器映像格式:

GitHub Container Registry 在 ghcr.io/OWNER/IMAGE-NAME 托管容器。

包客户端语言包格式描述
docker不适用Dockerfile节点包管理器

清单列表/映像索引

GitHub Container Registry 也支持 Docker V2、Schema 2 和 OCI 映像规格中定义的 Docker 清单列表/OCI 映像索引格式。

容器映像的可见性和访问权限

如果您对容器映像具有管理员权限,可以将容器映像设置为私有或公有。 公有映像允许匿名访问,无需身份验证或通过 CLI 登录即可进行拉取。

作为管理员,您还可以授予容器映像的访问权限,该权限与在组织和仓库级别设置的权限不同。

对于由用户帐户发布和拥有的容器映像,您可以向任何人授予访问角色。 对于组织发布和拥有的容器映像,您可以为组织中的任何人或团队授予访问角色。

权限角色访问描述
读取可以下载包。
可以读取包元数据。
写入可以上传和下载此包。
可以读取和写入包元数据。
管理员可以上传、下载、删除和管理此包。
可以读取和写入包元数据。
可以授予包权限。

更多信息请参阅“配置容器映像的访问控制和可见性”。

关于令牌

要安装或发布包,您必须使用具有适当作用域的令牌,并且您的用户帐户必须对该仓库具有适当的权限。

作用域描述
read:packages从 GitHub Container Registry 下载和安装容器映像
write:packages上传和发布容器映像到 GitHub Container Registry
delete:packages从 GitHub Container Registry 删除私有或公共容器映像的特定版本。 更多信息请参阅“删除和恢复软件包”。

要了解容器映像的可用范围和权限,请参阅“配置容器映像的访问控制和可见性”。

更多信息请参阅“创建个人访问令牌”和“可用作用域”。

关于 GitHub Container Registry 的计费

在 GitHub Container Registry 测试期间,新的 container registry 和现有的 GitHub Packages Docker 注册表都是免费的。 有关 GitHub Packages Docker 注册表的更多信息,请参阅“配置 Docker 与 GitHub Packages 一起使用”。

测试后,其他 GitHub Packages 注册表使用的计费和存储率将适用于容器注册表。 更多信息请参阅“关于 GitHub Packages 的计费”。

联系支持

如果您对 GitHub Container Registry 有反馈或功能请求,请使用反馈表

如果在 GitHub Container Registry 方面遇到以下问题,请使用我们的联系表联系 GitHub 支持:

  • 遇到任何与文档相矛盾的事情.
  • 遇到模糊或不清楚的错误.
  • 发布的包中含有敏感数据,例如违反 GDPR、API 密钥或个人身份信息.

此文档对您有帮助吗?

Privacy policy

帮助我们创建出色的文档!

所有 GitHub 文档都是开源的。看到错误或不清楚的内容了吗?提交拉取请求。

做出贡献

或, 了解如何参与。