Frequently Asked Question

What is a container registry and how does Docker Hub work?

A registry is the place container images live when nobody is using them: a content- addressed object store with an HTTP API standardised by the OCI distribution-spec. You push an image to give it a tag (myorg/webapp:1.2.3), and any machine that can reach the registry can pull it by that tag and get exactly the same bytes, the manifest and every layer are addressed by SHA-256, so there is no ambiguity about what "1.2.3" actually contains. Internally a registry is mostly a clever frontend for a blob store like S3.

Docker Hub (hub.docker.com) is the original and still the largest public registry, host of official images for almost every major piece of open-source software. But it is no longer alone: GitHub Container Registry (ghcr.io), GitLab Registry, Quay.io (Red Hat), Amazon ECR, Google Artifact Registry, and Azure Container Registry all implement the same OCI distribution API. Many organisations run a private registry (using Harbor, or the open-source registry:2 image, or a hosted equivalent) for internal images and use a public registry for upstream pulls.

Further reading and video