Skip to content
返回云服务

GitHub Container Registry (GHCR):免费无限私有镜像

在 GitHub 上与代码同置容器镜像,免费无限私有仓库并绑定仓库权限。

Docker 托管入门

为什么

GHCR 免费且私有仓库无限,继承 GitHub 仓库权限(无需单独 IAM),与源码同置——CI 可在一个工作流内构建部署,无需跨仓库认证。Docker is used by 59% of professional developers per the Stack Overflow 2024 survey。

Docker Hub 有 1500 万以上公共镜像,OCI 镜像规范采用意味着容器在 Docker、Podman 和 containerd 上一致运行。

何时使用

代码在 GitHub 且想要私有镜像又不想付 Docker Hub Pro 或 ECR 时用。适合 monorepo 和组织拥有的镜像。

如何做

1. Assess your workload requirements — compute, memory, storage, latency 2. Compare providers on price, region availability, and managed services 3. 在 github.com/settings/packages 为账号或组织启用。标签为 `ghcr.io/OWNER/IMAGE:tag`,登录 `echo $GHCR_TOKEN | docker login ghcr.io -u USERNAME --password-stdin`,推送。GitHub Actions 中 `GITHUB_TOKEN` 自动认证 ghcr.io,需 packages:write 权限。设包可见性为 public 或继承自仓库。将包链接到仓库以继承权限。 4. Set up IaC (Terraform/Pulumi) to provision resources 5. Configure monitoring, alerts, and cost budgets before going live

示例

# 打标签并推送到 GHCR docker build -t ghcr.io/myorg/myapp:1.0.0 . echo "\${GHCR_TOKEN}" | docker login ghcr.io -u myuser --password-stdin docker push ghcr.io/myorg/myapp:1.0.0 # .github/workflows/build.yml permissions: { packages: write } steps: - uses: docker/build-push-action@v5 with: registry: ghcr.io image: myorg/myapp tags: latest,${{ github.ref_name }}

常见问题

  • ⚠包建在个人账号而非组织下——移动需删除重推。
  • ⚠工作流中 GITHUB_TOKEN 缺 packages:write——加显式 permissions: 块。
  • ⚠公共包链接到私有仓库会在包 URL 暴露仓库名——取消链接或保持私有。

最佳实践

  • ✓用组织拥有的包(ghcr.io/myorg/...),员工离职后所有权存续。
  • ✓从链接仓库继承可见性,公共仓库自动获公共包。
  • ✓用定时 GitHub Action 调 actions/delete-package-versions 清理旧标签,避免存储膨胀。

常见问题解答

什么是GitHub Container Registry (GHCR):免费无限私有镜像?它解决什么问题?

在 GitHub 上与代码同置容器镜像,免费无限私有仓库并绑定仓库权限。 它可帮助开发者在不自建基础设施的前提下完成部署、存储与扩展,是云服务选型的核心参考。

如何在 5 分钟内上手GitHub Container Registry (GHCR):免费无限私有镜像?

两步即可跑通:① Assess your workload requirements — compute, memory, storage, latency;② Compare providers on price, region availability, and managed services。建议先用免费套餐验证流程,再接入生产环境。

GitHub Container Registry (GHCR):免费无限私有镜像 最容易踩的坑是什么?

最高频的问题是:包建在个人账号而非组织下——移动需删除重推。。建议在上线前用 checklist 逐项核对,并在 CI 中加入策略与配置扫描。

GitHub Container Registry (GHCR):免费无限私有镜像 的最佳实践有哪些?

GitHub Container Registry (GHCR):免费无限私有镜像 的最佳实践包括:用组织拥有的包(ghcr.io/myorg/...),员工离职后所有权存续。;从链接仓库继承可见性,公共仓库自动获公共包。;用定时 GitHub Action 调 actions/delete-package-versions 清理旧标签,避免存储膨胀。。其中首条「用组织拥有的包(ghcr.io/myorg/...),员工离职后所有权存续。」应作为团队默认规范写入 IaC 模板。

GitHub Container Registry (GHCR):免费无限私有镜像 如何控制成本与避免账单意外?

三招防超支:① 为所有资源打 env/team 标签并启用账单告警;② 用预算阈值触发 Slack/邮件通知;③ 定期用 Cost Explorer 审查闲置资源并清理。GitHub Container Registry (GHCR):免费无限私有镜像 多数提供免费套餐,先在免费额度内验证再放量。