toomanyrequests:您已达到拉取率限制。您可以通过身份验证和升级来增加限制

toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading

当我想使用 CodeBuild 从 CodeCommit 中的 Dockerfile 构建映像时,为什么会发生这种情况?

我收到这个错误:

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

尽量不要从 docker 中心拉取图像,因为 docker 对拉取图像有限制。

对 public docker 个图像使用 ECR(Elastic Container Registry) for private images and Amazon ECR Public GalleryAdvice for customers dealing with Docker Hub rate limits, and a Coming Soon announcement 获取 AWS 处理此问题的建议。

如果你在机器上 运行 docker pull _____ 一次,随后你的 Dockerfile 是 运行,它将使用本地副本而不是点击 Docker Hub(并用完您的速率限制)。所以对我来说,我 运行 这个命令一次性:

docker pull ubuntu:18.04

...以及随后的几次它工作正常。

或者,通过将我的 Dockerfile 从:

切换到 AWS public Docker repository
FROM ubuntu:18.04

FROM public.ecr.aws/lts/ubuntu:latest

对我也有用。

如果 Amazon ECR Public Gallery 不提供所需的图像,将图像从 Docker Hub 复制到私有 ECR 注册表也是一种选择。

例如

Skopeo 可以做到这一点。此代码段将您的私有注册表与 Docker 中心同步:

skopeo sync --dest-creds AWS:$(aws ecr get-login-password --output text) --src docker --dest docker docker.io/library/nginx <YourAWSAccountId>.dkr.ecr.eu-central-1.amazonaws.com/

一个解决方案是您应该通过以下命令登录 docker hub

$ sudo docker login --username=yourUsername
Password:
WARNING: login credentials saved in C:\Users\sven\.docker\config.json
Login Succeeded

就我而言,Docker 登录没有问题。 我可以用 docker pull nginx 下载 docker 个图像。 但是,当我尝试使用上图创建一个 k8s pod 时,出现了这个错误:

您已达到拉取率限制。您可以通过身份验证和升级来增加限制

我就是这样解决这个问题的by creating a private docker registry :

创建并 运行 私有 docker 注册表

docker run -d -p 5000:5000 --restart=always --name registry registry:2

从 public 下载 nginx 镜像 docker hub

docker pull nginx

在将 nginx 推送到私有注册表之前为它创建一个标签

docker tag nginx localhost:5000/nginx

推送到注册表

docker push localhost:5000/nginx

终于成功创建了一个Pod,也解决了这个问题。