跳到主要内容

容器镜像仓库对比:Harbor、Distribution、GitLab 与 Gitea

Harbor 解决「团队把构建好的镜像存在哪里、谁能推拉、保留多久」的问题。 典型流程是 CI 构建镜像后推到仓库,服务器再按版本或 digest 拉取部署。

同类工具怎么选​

工具核心定位适合场景维护与取舍
Harbor独立 OCI 仓库与治理平台,项目权限、复制、扫描集成多项目或多套 CI 需要统一管理镜像多组件运行,需维护数据库、制品存储、证书和后台任务
CNCF Distribution提供镜像推拉接口的基础 Registry只需私有推拉,愿意自行配套管理能力服务主体较精简;UI、项目治理、扫描等需另行集成
GitLab Container Registry与 GitLab 项目及 CI 集成的镜像仓库已使用 GitLab,希望代码与镜像管理连贯复用现有平台较方便;具体治理能力核对版本和套餐
Gitea Container RegistryGitea 包管理中的容器仓库已使用 Gitea,先满足团队基础镜像存储与已有账户体系结合;复杂治理需求逐项核对

这是功能与架构对比,未实测资源消耗。已有 GitLab/Gitea 时先评估内置仓库;需要独立于代码平台的治理能力再考虑 Harbor;只需要基础推拉时可考虑 Distribution。

不要混淆这些工具​

工具管什么
Git 仓库源代码与 Dockerfile
CI / 镜像构建工具把源代码构建成镜像
Harbor 等 Registry保存与分发镜像、OCI 制品
Docker / Kubernetes在目标机器运行容器

Harbor 不代替 CI 构建,也不负责把镜像运行成应用。它支持 OCI 制品,也不等于支持所有 Maven、npm 等包管理协议的通用制品仓库。

选型时优先检查​

  1. 是否支持所需的项目隔离、只读拉取账户、CI 凭证和审计方式。
  2. 是否需要复制、漏洞扫描、保留策略与不可变标签;支持不等于默认启用。
  3. 是否能恢复数据库与镜像存储,清理策略是否会删掉仍需回滚的版本。

站内说明与实践​