toomanyrequests policy network_error ai_generated true

Error response from daemon: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating.

ID: policy/docker-pull-rate-limit-anonymous

Also available as: JSON · Markdown · 中文
85%Fix Rate
89%Confidence
1Evidence
2023-05-01First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
Docker Engine 24.0.0 active
Docker Desktop 4.25.0 active
containerd 1.7.0 active

Root Cause

Docker Hub enforces pull rate limits (100 pulls per 6 hours for anonymous users, 200 for free authenticated users) which are exceeded.

generic

中文

Docker Hub实施拉取速率限制(匿名用户每6小时100次拉取,免费认证用户200次),用户已超过限制。

Official Documentation

https://docs.docker.com/docker-hub/download-rate-limit/

Workarounds

  1. 90% success Authenticate with Docker Hub using `docker login` to get a higher limit (200 pulls per 6 hours) and access to paid plans.
    Authenticate with Docker Hub using `docker login` to get a higher limit (200 pulls per 6 hours) and access to paid plans.
  2. 80% success Pull images from a mirror registry like `registry-1.docker.io` or use a proxy cache, e.g., configure `~/.docker/config.json` with `"registry-mirrors": ["https://mirror.gcr.io"]`
    Pull images from a mirror registry like `registry-1.docker.io` or use a proxy cache, e.g., configure `~/.docker/config.json` with `"registry-mirrors": ["https://mirror.gcr.io"]`
  3. 95% success Upgrade to a Docker Pro or Team subscription for unlimited pulls.
    Upgrade to a Docker Pro or Team subscription for unlimited pulls.

中文步骤

  1. 使用`docker login`进行Docker Hub身份验证,以获得更高的限制(每6小时200次拉取)并访问付费计划。
  2. 从镜像注册表拉取镜像,例如`registry-1.docker.io`,或使用代理缓存,例如在`~/.docker/config.json`中配置`"registry-mirrors": ["https://mirror.gcr.io"]`
  3. 升级到Docker Pro或Team订阅以获得无限拉取。

Dead Ends

Common approaches that don't work:

  1. Clearing Docker cache with `docker system prune -a` 90% fail

    Pruning removes cached images but does not reset the rate limit counter; pulling again still counts against the limit.

  2. Using a different Docker Hub username without authentication 85% fail

    Anonymous pulls are tracked by IP address, not username; changing usernames has no effect without authentication.

  3. Restarting the Docker daemon to reset the counter 100% fail

    The rate limit is enforced server-side by Docker Hub; restarting the daemon does not affect the server's counter.