cicd
registry
ai_generated
true
toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit
ID: cicd/docker-rate-limit
90%Fix Rate
92%Confidence
50Evidence
2023-01-01First Seen
Version Compatibility
| Version | Status | Introduced | Deprecated | Notes |
|---|---|---|---|---|
| any | active | — | — | — |
Root Cause
Docker Hub rate limits were exceeded for anonymous or free-tier pulls. Anonymous pulls are limited to 100 per 6 hours per IP; authenticated free users get 200. CI environments sharing IPs hit this quickly.
genericWorkarounds
-
90% success Authenticate with Docker Hub to increase the rate limit
Create a Docker Hub account and add credentials to CI. For GitHub Actions: store DOCKER_USERNAME and DOCKER_PASSWORD as secrets, add a docker/login-action step before pulls. This doubles the rate limit to 200 pulls/6hr.
-
92% success Use a registry mirror or cache proxy
Set up a pull-through cache registry (e.g., registry:2 with proxy.remoteurl=https://registry-1.docker.io). Or use cloud provider mirrors: AWS ECR Public, GitHub Container Registry (ghcr.io), or Google Mirror (mirror.gcr.io).
Dead Ends
Common approaches that don't work:
-
Waiting for the rate limit to reset without implementing a long-term fix
80% fail
The rate limit will be hit again on the next CI run cycle since the underlying pull pattern has not changed
-
Using a VPN or rotating IPs to bypass the rate limit
75% fail
This violates Docker Hub terms of service and is unreliable. Shared CI runner IPs still converge on the same rate limits.
Error Chain
Preceded by:
Frequently confused with: