Es wurde angekündigt, dass es ab dem 2. November 2020 implementiert wird, So überprüfen Sie den Anwendungsstatus der Docker-Pull-Ratenbeschränkungen in der Befehlszeile: Veröffentlicht im Docker-Blog -Docker-Pull-Rate-Limits-und-Status /) wurde durchgeführt. Dies ist eine Aufzeichnung darüber, wie man dies tatsächlich versucht.
Punkt
Download bei Pull, wie am 24. August angekündigt angekündigt von Docker Es scheint, dass sich das Verhältnislimit ab dem 2. November ändern wird.
Der letzte eingeschränkte Status wird auf der folgenden Seite veröffentlicht.
Current Docker Hub Usage Limit Status (updated 11/2, 9:00am Pacific) Unauthenticated requests: 5,000 per six hours Free tier requests: 5,000 per six hours
Temporary full enforcement window (100 per six hours for unauthenticated requests, 200 per six hours for free accounts): November 2, 9am-10am Pacific Time.
Eine Möglichkeit zur Überprüfung des Ratenlimits finden Sie im Docker-Blog.
Dies bestätigt, dass das Ratenlimit auf Pseudo-Weise angewendet wird, indem der Befehl zum "Ziehen" des Bildes "Ratelimitpreview / Test" ausgeführt wird.
Wie im Blog erwähnt, wird die Befehlsausführung selbst, die die Anforderung ausführt, natürlich gezählt, wenn die Anforderung (pull
) tatsächlich an Docker Hub gesendet wird. Bitte seien Sie vorsichtig.
-- jq
ist erforderlich (yum install jq
für CentOS)
base64
, das jwt nach Bedarf verarbeiten kann.Führen Sie diesen Befehl in der Umgebung aus, in der Docker installiert ist.
$ TOKEN=$(curl "https://auth.docker.io/token?service=registry.docker.io&scope=repository:ratelimitpreview/test:pull" | jq -r .token)
dann
curl -v -H "Authorization: Bearer $TOKEN" https://registry-1.docker.io/v2/ratelimitpreview/test/manifests/latest 2>&1 | grep RateLimit
< RateLimit-Limit: 100;w=21600
< RateLimit-Remaining: 99;w=21600
Sie können sehen, dass das aktuelle Limit (Limit) "100" und der Rest (RateLimit-Remaining) "99" ist.
Wenn Sie den Befehl "Docker Pull" mehrmals ausführen und den Download fortsetzen,
$ curl -v -H "Authorization: Bearer $TOKEN" https://registry-1.docker.io/v2/ratelimitpreview/test/manifests/latest 2>&1 | grep RateLimit
< RateLimit-Limit: 100;w=21600
< RateLimit-Remaining: 95;w=21600
Es ist ersichtlich, dass "RateLimit-Ramaining" auf "95" reduziert ist.
Geben Sie in der zweiten Zeile den "Benutzernamen" und das "Passwort" ein, wenn Sie sich bei Docker Hub anmelden.
$ HISTCONTROL=ignorespace
$ TOKEN=$(curl --user 'username:password' "https://auth.docker.io/token?service=registry.docker.io&scope=repository:ratelimitpreview/test:pull" | jq -r .token)
Nachdem Sie das Token erhalten haben, können Sie es auf die gleiche Weise wie anonym überprüfen.
curl -v -H "Authorization: Bearer $TOKEN" https://registry-1.docker.io/v2/ratelimitpreview/test/manifests/latest 2>&1 | grep RateLimit
< RateLimit-Limit: 200;w=21600
< RateLimit-Remaining: 198;w=21600
Um einfach die aktuell angewendete Rate zu überprüfen, verwenden Sie ein Tool, das "jwt" (JSON Web Token) für den Inhalt von "$ TOKEN" verarbeiten kann, oder wenn es sich um eine Befehlszeile handelt
$ for line in `echo -n $TOKEN | tr "." "\n"`; do echo -n $line | base64 -d 2>/dev/null | jq 2>/dev/null && echo;done
Sie können es auch anhand der folgenden pull_limit
und pull_limit_interval
überprüfen.
{
"access": [
{
"type": "repository",
"name": "ratelimitpreview/test",
"actions": [
"pull"
],
"parameters": {
"pull_limit": "200",
"pull_limit_interval": "21600"
}
}
],
Es scheint, dass es kein Problem für den normalen persönlichen Gebrauch gibt, aber wenn der Zugriff von einem Ort in kurzer Zeit in einer Umgebung konzentriert ist, in der CI anonym oder über PROXY oder ein Gateway gedreht wird ( Kann betroffen sein (ohne Zertifizierung).
Recommended Posts