DOCKER_PULL_RATE_LIMIT cicd resource_error 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-limits

ID: cicd/docker-pull-rate-limit

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

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
Docker 24.0 active
Docker 25.0 active
Docker 26.0 active

Root Cause

Docker Hub pull rate limit exceeded (anonymous users: 100 pulls/6 hours, authenticated free users: 200 pulls/6 hours) due to high CI frequency or shared IP addresses.

generic

中文

Docker Hub拉取速率限制已超出(匿名用户:每6小时100次拉取,已认证免费用户:每6小时200次拉取),原因是CI频率过高或共享IP地址。

Official Documentation

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

Workarounds

  1. 90% success Authenticate Docker Hub in CI: use 'docker login -u $DOCKER_USER -p $DOCKER_PAT' to increase the limit to 200 pulls/6 hours for free accounts or unlimited for Pro/Team accounts.
    Authenticate Docker Hub in CI: use 'docker login -u $DOCKER_USER -p $DOCKER_PAT' to increase the limit to 200 pulls/6 hours for free accounts or unlimited for Pro/Team accounts.
  2. 95% success Use a mirror registry like 'registry-mirror.example.com' or switch to Amazon ECR/GCR to avoid Docker Hub limits entirely. Example: 'docker pull registry-mirror.example.com/library/node:18'
    Use a mirror registry like 'registry-mirror.example.com' or switch to Amazon ECR/GCR to avoid Docker Hub limits entirely. Example: 'docker pull registry-mirror.example.com/library/node:18'

中文步骤

  1. Authenticate Docker Hub in CI: use 'docker login -u $DOCKER_USER -p $DOCKER_PAT' to increase the limit to 200 pulls/6 hours for free accounts or unlimited for Pro/Team accounts.
  2. Use a mirror registry like 'registry-mirror.example.com' or switch to Amazon ECR/GCR to avoid Docker Hub limits entirely. Example: 'docker pull registry-mirror.example.com/library/node:18'

Dead Ends

Common approaches that don't work:

  1. 80% fail

    Passive waiting delays CI pipelines and doesn't solve the root cause; the limit will be hit again on the next build.

  2. 95% fail

    Changing platform doesn't bypass rate limits; each pull still counts against the same quota regardless of platform.