{
  "id": "policy/docker-hub-pull-rate-limit-exceeded",
  "signature": "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",
  "signature_zh": "来自守护进程的错误响应：toomanyrequests：您已达到拉取速率限制。您可以通过身份验证和升级来提高限制：https://www.docker.com/increase-rate-limit",
  "regex": "toomanyrequests: You have reached your pull rate limit",
  "domain": "policy",
  "category": "resource_error",
  "subcategory": null,
  "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.",
  "root_cause_type": "generic",
  "root_cause_zh": "Docker Hub 对匿名拉取（每 6 小时每 IP 100 次）和经过身份验证的免费用户（每 6 小时 200 次）实施拉取速率限制；超出限制后会阻止拉取。",
  "versions": [
    {
      "version": "Docker Engine 24.0",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    },
    {
      "version": "Docker Desktop 4.25",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    },
    {
      "version": "Docker Hub rate limit policy Nov 2020",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    }
  ],
  "os_specific": {},
  "dead_ends": [
    {
      "action": "Restart Docker daemon to reset rate limit counter",
      "why_fails": "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.",
      "fail_rate": 0.95,
      "condition": "",
      "sources": []
    },
    {
      "action": "Use a VPN to get a different IP address",
      "why_fails": "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.",
      "fail_rate": 0.7,
      "condition": "",
      "sources": []
    }
  ],
  "workarounds": [
    {
      "action": "Authenticate with docker login using a Docker Hub account (free tier raises limit to 200 pulls/6h).",
      "success_rate": 0.9,
      "how": "Authenticate with docker login using a Docker Hub account (free tier raises limit to 200 pulls/6h).",
      "condition": "",
      "sources": []
    },
    {
      "action": "Upgrade to a Docker Pro/Team subscription for unlimited pulls, or use a mirror registry like mirror.gcr.io.",
      "success_rate": 0.95,
      "how": "Upgrade to a Docker Pro/Team subscription for unlimited pulls, or use a mirror registry like mirror.gcr.io.",
      "condition": "",
      "sources": []
    }
  ],
  "workarounds_zh": [
    "使用 docker login 通过 Docker Hub 账户进行身份验证（免费用户限制提高到每 6 小时 200 次拉取）。",
    "升级到 Docker Pro/Team 订阅以获得无限拉取，或使用镜像注册表如 mirror.gcr.io。"
  ],
  "transition_graph": {
    "leads_to": [],
    "preceded_by": [],
    "frequently_confused_with": []
  },
  "official_doc_url": "https://docs.docker.com/docker-hub/download-rate-limit/",
  "official_doc_section": null,
  "error_code": null,
  "verification_tier": "ai_generated",
  "confidence": 0.88,
  "fix_success_rate": 0.85,
  "resolvable": "true",
  "first_seen": "2023-06-01",
  "last_confirmed": "2024-06-01",
  "last_updated": "2024-06-01",
  "evidence_count": 1,
  "tags": [],
  "locale": "en",
  "aliases": []
}