来自守护进程的错误响应:toomanyrequests:您已达到拉取速率限制。您可以通过身份验证和升级来提高限制:https://www.docker.com/increase-rate-limit
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
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| Docker Engine 24.0 | active | — | — | — |
| Docker Desktop 4.25 | active | — | — | — |
| Docker Hub rate limit policy Nov 2020 | active | — | — | — |
根因分析
Docker Hub 对匿名拉取(每 6 小时每 IP 100 次)和经过身份验证的免费用户(每 6 小时 200 次)实施拉取速率限制;超出限制后会阻止拉取。
English
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.
官方文档
https://docs.docker.com/docker-hub/download-rate-limit/解决方案
-
使用 docker login 通过 Docker Hub 账户进行身份验证(免费用户限制提高到每 6 小时 200 次拉取)。
-
升级到 Docker Pro/Team 订阅以获得无限拉取,或使用镜像注册表如 mirror.gcr.io。
无效尝试
常见但无效的做法:
-
Restart Docker daemon to reset rate limit counter
95% 失败
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.
-
Use a VPN to get a different IP address
70% 失败
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.