Docker Hub匿名拉取限流是按仓库单独计数还是按IP聚合计数?
Docker Hub匿名拉取限流计数规则
明确结论
同一出口IP(包括企业NAT、办公网共享出口这类多用户共用同一公网IP的场景)发起的所有匿名拉取请求,无论拉取的是哪个命名空间、哪个名称的Docker Hub镜像仓库,全部会被聚合统计,共同计入该IP对应的限流阈值,绝对不会针对不同仓库、不同命名空间分别计数。
规则执行逻辑
- 匿名拉取的限流判定只有「来源公网IP」这一个核心维度,和你拉的镜像属于哪个作者账号、叫什么名字、用什么tag完全无关。举个实际场景例子:同一公网IP下,不管你拉
bitnami/mariadb、mirekphd/ml-mariadb还是官方维护的alpine、redis镜像,每一次拉取都会往这个IP的计数器上加1。 - 匿名用户的限流标准是单IP每6小时最多100次拉取,累计次数到阈值之后,这个IP发起的所有匿名拉取请求都会被拦截,返回频率超限的错误。
- 你可以自行验证这个逻辑:匿名拉取镜像时查看响应头里的限流字段,同IP下哪怕切换完全不相关的镜像仓库拉取,显示的剩余可拉取次数都是连续扣减的,不会因为换了拉取目标就重置计数。
如果是多用户共享出口IP的场景,很容易提前打满匿名配额,这种情况可以登录认证Docker Hub账号后再拉取,认证用户的限流维度是个人账号而非IP,配额额度也比匿名用户高很多。
内容的提问来源于stack exchange,提问作者mirekphd
相关产品推荐
相关产品推荐

