据我了解,GitHub 提供了两种存储容器镜像的选项:Container Registry 和 Packages,但我认为区别并不明显。在一篇博文中,他们说“使用 GitHub Actions,发布到 GitHub Container Registry 很容易。” 但是给定的示例将图像推送到包,而不是容器注册表。
那么,这两个平台可以互换使用吗?一个比另一个有优势吗?
据我了解,GitHub 提供了两种存储容器镜像的选项:Container Registry 和 Packages,但我认为区别并不明显。在一篇博文中,他们说“使用 GitHub Actions,发布到 GitHub Container Registry 很容易。” 但是给定的示例将图像推送到包,而不是容器注册表。
那么,这两个平台可以互换使用吗?一个比另一个有优势吗?
正如tgogos所述,关于GitHub Container Registry 和 Docker 包注册表之间的主要区别的 GitHub 文档指南告诉我们:
GitHub Container Registry 取代了现有的 Packages Docker 注册表,并经过优化以支持容器的一些独特需求。
TLDR;GH Container Registry 将取代 Packages Docker Registry。它还更多地关注 GitHub 组织级别,而不是单个存储库。因此,例如,您可以在帐户级别找到您的容器映像 - 如果需要,必须稍后将它们选择性地链接到存储库。此外,它还具有对 Docker 映像的匿名访问(请参阅此处的 GHCR 介绍文章)。
我猜他们迁移的原因是他们想从注册表中删除“Docker”这个名字。' Docker ' 的原因只是另一种创建映像的技术,但是您可以使用其他 CRI(容器运行时映像),例如 cri-o、rkt、container-D。这些是 CNCF 活跃的项目。最终,随着多年来容器-D 的受欢迎程度不断提高,容器-D 可能会完全取代 Docker。AWS ECS 已开始在其 ECS 实例中使用基于 container-D 的代理,Kubernetes 从 v1.22 开始停止支持 Docker 作为默认 CRI。
因此 GitHub 希望他们的客户在未来使用术语“容器”(可以是任何通用名称),而不仅仅是“Docker”。