Context

Discord Q&A 討論 self-hosted Docker Hub 替代方案,針對 20 人開發團隊存放開發用 image 及 GitLab Runner CI job 的情境進行選型比較。

Key Insights

  • Harbor 是中小型團隊生產環境的業界標準:CNCF Graduated 等級,功能含 RBAC、漏洞掃描(Trivy)、image replication、SBOM、Proxy Cache。需要 4C8G + PostgreSQL + Redis,但 docker-compose installer 讓部署不複雜。

  • Proxy Cache 是 GitLab CI 場景的關鍵功能:Harbor 可代理 Docker Hub,讓 GitLab Runner pull base image 不受 Docker Hub rate limit 影響。這是 registry:2 無法原生提供的。

  • registry:2 + joxit/docker-registry-ui 適合資源受限場景:1C1G VPS 即可,無依賴,部署最簡單。但無 RBAC、無漏洞掃描、刪 tag 實際上是刪 manifest(同 SHA 的其他 tag 一起消失),且刪後需手動跑 GC 才真正釋放空間。

  • Zot 是 Harbor 的輕量替代品而非競爭者:Harbor Satellite(邊緣節點同步)內嵌 Zot,定位是邊緣或資源極受限環境。社群較小(~2k stars vs Harbor ~28k stars)。

  • Nexus 只在已有 Nexus 管其他 artifacts 時才值得考慮:Java JVM 需要 8–16 GB RAM,Docker registry 功能比 Harbor 弱,無原生漏洞掃描。

  • 各方案資源底線

    • registry:2 + UI:1C1G,50 GB storage
    • Zot:1C1G,storage-only
    • Harbor:4C8G,100 GB SSD
    • Nexus:8C16G,50 GB + storage

Connections