← all SaaS
Self-host Docker Hub
Container image registry ·
Category: git hosting, CI & dev tooling
Docker Hub is the default container registry — push and pull images, manage tags and access, with a generous free tier and Pro/Team upgrades. The self-hostable replacements all do push + pull + auth + storage backend; what Docker Hub gives you for free (a public registry that everyone's already configured to talk to) is the part you trade away by self-hosting.
Docker Hub pricing anchor: Personal Free; Pro $7/user/mo (200 image pulls/6h); Team $11/user/mo; Business $24/user/mo.
- GitHub
- ★ 28.5k · last commit 2d ago · 841 open issues
- License
-
Apache-2.0 - Setup time
- 30min — `installer.sh` with bundled compose (Harbor + Postgres + Redis + Trivy)
- Monthly cost
- $10-30/mo VPS — storage scales with image volume; back with S3-compatible blob store.
Migration sketch. Download the Harbor installer from goharbor.io/docs/2.x/install-config/, edit `harbor.yml` (hostname + storage), run `./install.sh`. Migrate from Docker Hub: `docker login` to your Harbor instance, then loop your Hub images: `docker pull hub.docker.com/myorg/img:tag && docker tag ... && docker push harbor.example.com/proj/img:tag`. Skopeo (`skopeo copy --all docker://hub.docker.com/myorg/img docker://harbor.example.com/proj/img`) handles multi-arch in one shot.
Good fit forProduction registries — Harbor bundles vulnerability scanning (Trivy), image signing (Cosign/Notary), RBAC, project quotas.
Weak atMulti-service install; smaller projects find Distribution simpler.
- GitHub
- ★ 10.4k · last commit 8d ago · 488 open issues
- License
-
Apache-2.0 The reference Docker Registry implementation — open source under CNCF.
- Setup time
- 5min docker run
- Monthly cost
- $3-10/mo VPS; storage on local disk or S3.
Migration sketch. `docker run -d -p 5000:5000 -v $HOME/registry:/var/lib/registry --name registry registry:2`. Configure auth via the `REGISTRY_AUTH` env (htpasswd or token). Migration loop the same as Harbor: `skopeo copy --all docker://hub.docker.com/myorg/img docker://registry.example.com/myorg/img`. Front with nginx for TLS + basic auth, or with the `oci-registry-ui` image for a simple browse UI.
Good fit forSingle-team or personal registries — minimal install, the de facto reference implementation.
Weak atNo UI, RBAC, or scanning — bring your own. Logging/auditing also bring-your-own.
- GitHub
- ★ 2.51k · last commit 3mo ago · 355 open issues
- License
-
EPL-1.0 - Setup time
- 20min docker run
- Monthly cost
- $15/mo VPS — JVM, needs at least 2GB RAM.
Migration sketch. `docker run -d -p 8081:8081 -p 8082:8082 --name nexus -v nexus-data:/nexus-data sonatype/nexus3`. Create a Docker (hosted) repository under Repositories → Create. Migration via skopeo as with the others. Nexus also serves as a proxy/cache for Docker Hub itself — set up a Docker (proxy) repo pointing at hub.docker.com to insulate your team from Hub rate limits.
Good fit forPolyglot teams that already store Maven / npm / NuGet / PyPI artifacts in Nexus and want one tool for all formats.
Weak atHeavy for a registry-only use case; UI feels enterprise-Java by default.
In a terminal? npx os-alt docker-hub prints this table —
how the CLI works →