Docker-compose:您已达到拉取速率限制(即使已经超过 6 小时)

问题描述 投票:0回答:3

我正在使用 docker-compose,并且有一个步骤可以提取最新的 postgres。但我开始收到以下错误:

You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limits.

自从我上次拉东西已经一天了,但我仍然收到这个错误。我还要等多久才能再次拉动?我支持工作场所代理进行匿名拉取。

docker docker-compose
3个回答
17
投票

拉动限制是滚动限制,应在部分配额使用后 6 小时重置部分配额。例如。你们中的每个人每小时进行 25 次拉取,然后在第 4 个小时之后,您需要等待 2 小时才能将前 25 次拉取重新添加到您的配额中。

匿名拉取基于执行拉取的 IP,如果您位于代理或 NAT 之后,这可能意味着同一网络上的其他人也包含在您的限制中。因此,如果您看到 6 小时后继续达到限制,则网络上很可能有其他人使用来自 NAT 的相同源 IP 从集线器拉取。

使用免费的 Hub 帐户登录会使此限制加倍,并且基于登录而不是源 IP,允许 NAT 后面的不同用户拉取而不会相互冲突。

因此,您应该在拉取命令中包含凭据,使用

docker login
或用于拉取的工具的等效工具。


1
投票

另一个解决方法是在本地拉取镜像一次并将其推送到本地 docker 存储库。然后更新您的图像属性以指向您的本地存储库。

示例: 我在使用“busybox”图像时遇到了问题。在一些调试过程中我达到了极限。这是我的 pod 规范之一的 deployment.yaml 文件中的内容。

image: busybox

然后我使用我的凭据在本地提取图像并将其推送到我们的本地(内部托管)docker 存储库。推送后,使用更新的图像链接更新部署.yaml 文件。

image: <LOCAL DOCRER REPO URL>/busybox

0
投票

如果遇到 Docker 速率限制,手动拉取映像是一种有用的解决方法。这种方法需要等待一段时间,然后使用 docker pull 命令尝试再次拉取映像。

docker pull <image-name>

替换为您需要的具体镜像,例如nginx或mysql:latest。

© www.soinside.com 2019 - 2024. All rights reserved.