【Linux命令查看docker hub pull ratelimit】

前言

Linux命令查看docker hub pull ratelimit

用户类型 速率限制
匿名用户 每个IP地址每6小时100次pull
身份验证的用户 每6小时200次pull
Docker订阅付费用户 每天多达5000次pull

0x01 如何知道我的pull requests被限制了

  当你发出一个pull request并且超过限制时,Docker Hub会在请求manifest时返回一个带有以下主体的429响应代码:

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

此错误消息出现在Docker CLI或Docker Engine日志中。

0x02 如何查看当前ratelimit

  对Hub的有效API请求通常在响应中包含以下速率限制标头:

ratelimit-limit    
ratelimit-remaining
docker-ratelimit-source

GET和HEAD请求都会返回这些头。
使用GET模拟一个真实的pull并计数到极限。使用HEAD不会。要检查限制,您需要安装curlgrepjq
如果您正在匿名pull,要匿名获取令牌,:

TOKEN=$(curl "https://auth.docker.io/token?service=registry.docker.io&scope=repository:ratelimitpreview/test:pull" | jq -r .token)

若要获取具有用户帐户的令牌,前提您已通过身份验证(在以下命令中插入您的用户名和密码username:password):

TOKEN=$(curl --user 'username:password' "https://auth.docker.io/token?service=registry.docker.io&scope=repository:ratelimitpreview/test:pull" | jq -r .token)

然后,要获取显示限制的头文件,请运行以下命令:

curl --head -H "Authorization: Bearer $TOKEN" https://registry-1.docker.io/v2/ratelimitpreview/test/manifests/latest

它应该返回以下头:

ratelimit-limit: 100;w=21600
ratelimit-remaining: 76;w=21600
docker-ratelimit-source: 192.0.2.1

在上面的示例中,拉取限制为每21600秒(6小时)100次拉取,并且剩余76次拉取。

0x03 docker login命令登录相关

用法:

docker login [OPTIONS] [SERVER]

如果要登录到自托管仓库,可以通过以下方式指定添加服务器名称。

docker login localhost:8080

使用STDIN(--password-stdin)提供密码
要以非交互方式运行docker login命令,可以通过STDIN方法设置 --password-stdin标志提供密码。使用 STDIN防止密码出现在shell的历史记录中, 或日志文件中。

下面的示例从文件中读取密码,并将其使用STDIN传递给使用docker login

cat ~/my_password.txt | docker login --username foo --password-stdin

注意
docker login要求用户使用sudo或成为root,除非:

  1. 连接到远程守护程序,例如docker-machine配置的docker engine
  2. 用户被添加到docker组。这将影响系统的安全性;docker组与root组等效。

  您可以使用凭据登录到任何公共或私有存储库,登录时,该命令将凭据存储在 $HOME/.docker/config.json(在Linux上)或%USERPROFILE%/.docker/config.json(在 Windows)。

你可能感兴趣的:(linux,linux,docker)