阿里云容器镜像服务: 构建失败:docker 429many requests
问题描述 #
在使用阿里云容器镜像服务时,遇到了镜像仓库构建失败的问题。具体错误信息为:docker 429 Too Many Requests,错误提示为"ERROR: failed to copy: httpReaderSeeker: failed open: unexpected status code https://registry-1.docker.io/v2/library/node/manifests/sha256:49623842709a1b74fa33eeacfc819a3bd48ddecf3e20166bbe56a918bba5e34a: 429 Too Many Requests - Server message: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit#"
遇到这种情况, 首先可以去容器镜像制品中心中找到符合自己需求的镜像,如果没找到,就需要手动解决。
手动解决方案:
-
下载Node镜像包到本地:
- 执行以下命令下载Node镜像包:
docker pull registry.cn-hangzhou.aliyuncs.com/library/node
docker pull registry.cn-hangzhou.aliyuncs.com/library/node
- 执行以下命令下载Node镜像包:
-
将镜像包提交到阿里云的公共镜像仓库:
- 重新打标签,并将镜像提交到阿里云的公共镜像仓库,使用以下命令:
docker tag registry.cn-hangzhou.aliyuncs.com/library/node <your-aliyun-registry-url>/<your-repository>/<new-image-name> docker push <your-aliyun-registry-url>/<your-repository>/<new-image-name>
docker tag registry.cn-hangzhou.aliyuncs.com/library/node <your-aliyun-registry-url>/<your-repository>/<new-image-name> docker push <your-aliyun-registry-url>/<your-repository>/<new-image-name>
- 替换
<your-aliyun-registry-url>
为你的阿里云镜像仓库地址,<your-repository>
为你的镜像仓库名称,<new-image-name>
为新镜像的名称。
- 重新打标签,并将镜像提交到阿里云的公共镜像仓库,使用以下命令:
-
在Dockerfile中使用阿里云公共镜像仓库中的Node镜像地址:
- 在Dockerfile中,使用以下方式指定镜像地址:
FROM <your-aliyun-registry-url>/<your-repository>/<new-image-name> ...
FROM <your-aliyun-registry-url>/<your-repository>/<new-image-name> ...
- 在Dockerfile中,使用以下方式指定镜像地址:
通过以上步骤,你可以成功避免Docker Hub的请求限制,并使用阿里云的公共镜像仓库构建你的镜像。
操作示例 #
创建镜像仓库: #
假设你需要使用centos:centos7.8.1080
镜像,首先你可以在阿里云容器镜像服务中寻找是否有对应版本的镜像。如果在容器镜像服务中找不到需要的镜像,那么你需要自己上传镜像。下面是具体步骤:
- 创建镜像仓库:
- 登录阿里云容器镜像服务,在控制台中创建一个新的镜像仓库。
- 按照你提供的示例,创建一个名为
centos
的镜像仓库。
-
从Docker Hub上拉取CentOS镜像到本地:
- 打开终端或命令提示符,执行以下命令拉取
centos:centos7.8.1080
镜像到本地:docker pull centos:centos7.8.1080
docker pull centos:centos7.8.1080
- 打开终端或命令提示符,执行以下命令拉取
-
将本地镜像上传到阿里云镜像仓库:
- 首先,登录到阿里云容器镜像服务。在终端中执行以下命令:请将
docker login --username=<your-aliyun-username> --password=<your-aliyun-password> registry.cn-hangzhou.aliyuncs.com
docker login --username=<your-aliyun-username> --password=<your-aliyun-password> registry.cn-hangzhou.aliyuncs.com
<your-aliyun-username>
和<your-aliyun-password>
替换为你的阿里云账号用户名和密码。 - 然后,执行以下命令将本地镜像重新打标签,并上传到阿里云镜像仓库:
docker tag centos:centos7.8.1080 registry.cn-hangzhou.aliyuncs.com/<you-workspace>/centos7.8.1080 docker push registry.cn-hangzhou.aliyuncs.com/<you-workspace>/centos7.8.1080
docker tag centos:centos7.8.1080 registry.cn-hangzhou.aliyuncs.com/<you-workspace>/centos7.8.1080 docker push registry.cn-hangzhou.aliyuncs.com/<you-workspace>/centos7.8.1080
- 首先,登录到阿里云容器镜像服务。在终端中执行以下命令:
如果有任何问题,可以邮件讨论: vincent.cy@foxmail.com
版权属于: vincent
转载时须注明出处及本声明