policy resource_error ai_generated true

Error response from daemon: 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: policy/docker-hub-pull-rate-limit-exceeded

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

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
Docker Engine 24.0 active — — —
Docker Desktop 4.25 active — — —
Docker Hub rate limit policy Nov 2020 active — — —

Root Cause

Docker Hub enforces anonymous pull rate limits (100 pulls per 6 hours per IP) and authenticated free tier limits (200 pulls per 6 hours per user); exceeding these blocks pulls.

generic

中文

Docker Hub 对匿名拉取(每 6 小时每 IP 100 次)和经过身份验证的免费用户(每 6 小时 200 次)实施拉取速率限制;超出限制后会阻止拉取。

Official Documentation

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

Workarounds

  1. 90% success Authenticate with docker login using a Docker Hub account (free tier raises limit to 200 pulls/6h).
    Authenticate with docker login using a Docker Hub account (free tier raises limit to 200 pulls/6h).
  2. 95% success Upgrade to a Docker Pro/Team subscription for unlimited pulls, or use a mirror registry like mirror.gcr.io.
    Upgrade to a Docker Pro/Team subscription for unlimited pulls, or use a mirror registry like mirror.gcr.io.

中文步骤

  1. 使用 docker login 通过 Docker Hub 账户进行身份验证(免费用户限制提高到每 6 小时 200 次拉取)。
  2. 升级到 Docker Pro/Team 订阅以获得无限拉取,或使用镜像注册表如 mirror.gcr.io。

Dead Ends

Common approaches that don't work:

  1. Restart Docker daemon to reset rate limit counter 95% fail

    Rate limit is enforced server-side by Docker Hub based on IP address and user account; restarting the daemon does not change the client IP or authentication status.

  2. Use a VPN to get a different IP address 70% fail

    While a new IP may reset anonymous limits temporarily, many corporate VPNs share IPs, causing the same limit to be hit again quickly; also violates many corporate security policies.