Design a Container Image Registry

Problem

Design a container image registry (Docker Hub-style) that stores and serves image layers.

Requirements

Functional:

  • Push/pull images by name:tag
  • Content-addressed layer storage with dedup
  • Manifest resolution
  • Auth and rate limiting

Non-functional:

  • Millions of pulls/day, large layers
  • Dedup to save storage
  • Global low-latency pulls

Discussion points

  1. Content-addressed (digest) layer storage + dedup
  2. Manifest and tag resolution
  3. CDN for layer distribution
  4. Auth, quotas, and rate limiting
  5. Garbage collection of unreferenced layers
added …
LeaderboardSalaryAccount