Skip to main content

从 Docker 注册表迁移到容器注册表

GitHub 会将之前存储在 GitHub 上的 Docker 注册表中的 Docker 映像迁移到 Container registry。

谁可以使用此功能?

GitHub Packages 适用于 GitHub Free、GitHub Pro、面向组织的 GitHub Free、GitHub Team、GitHub Enterprise Cloud、GitHub Enterprise Server 3.0 或更高版本。
GitHub Packages 不适用于使用旧版按仓库计划的帐户所拥有的私有仓库。 此外,使用旧版按存储库计划的帐户无法访问支持精细权限的注册表,因为这些帐户按存储库计费。 Enterprise Managed Users 没有单独的存储分配来在其帐户的命名空间内发布包,但可以发布到组织的命名空间。 有关 Enterprise Managed Users 的其他信息,请参阅“关于 Enterprise Managed Users”。有关支持精细权限的注册表列表,请参阅“关于 GitHub Packages 的权限”。 有关详细信息,请参阅“GitHub 的计划”。

关于 Container registry

Container registry 将容器映像存储在组织或个人帐户中,并允许你将映像与存储库相关联。 可以选择是从存储库继承权限,还是独立于存储库设置精细权限。 你也可以匿名访问公共容器映像。 有关详细信息,请参阅 使用容器注册表

关于从 Docker 注册表迁移

Container registry 替代 GitHub 的 Docker 注册表。如果已将 Docker 映像存储在 Docker 注册表中,则GitHub会逐步将映像迁移到 Container registry。 你无需执行任何操作。

在将 Docker 映像迁移到 Container registry 后,你将看到对包详细信息所做的以下更改。

  • 包图标将是 Container registry 徽标( 图标),而不是 Docker 徽标。
  • 拉取 URL 中的域将是 ghcr.io 而不是 docker.pkg.github.com

任何使用 Docker 注册表 docker.pkg.github.com 的命名空间的脚本或 GitHub Actions 工作流在迁移到 ghcr.io 处的 Container registry 后都将继续工作。

迁移后,便无法再使用 GraphQL API 来查询 PackageType 为“DOCKER”的包。 可以改为使用 REST API 查询 package_type 为“容器”的包。 有关详细信息,请参阅“适用于包的 REST API 终结点”。

关于 Container registry 的计费

有关 Container registry 计费的详细信息,请参阅 关于 GitHub 包的计费