Utilisation et limites de téléchargement Docker Hub
Les utilisateurs non authentifiés et Docker Personal sont soumis à une limite de taux de téléchargement de 6 heures sur Docker Hub. En revanche, les utilisateurs Docker Pro, Team et Business bénéficient d'un taux de téléchargement illimité.
L'utilisation et les limites de téléchargement suivantes s'appliquent en fonction de votre abonnement, sous réserve d'une utilisation équitable :
Type d'utilisateur | Limite de taux de téléchargement par 6 heures |
---|---|
Business (authentifié) | Illimité |
Team (authentifié) | Illimité |
Pro (authentifié) | Illimité |
Personal (authentifié) | 200 |
Utilisateurs non authentifiés | 100 par adresse IPv4 ou sous-réseau IPv6 /64 |
Définition du téléchargement
Un téléchargement est défini comme suit :
- Un téléchargement Docker inclut à la fois une vérification de version et tout téléchargement qui
se produit suite au téléchargement. Selon le client, un
docker pull
peut vérifier l'existence d'une image ou d'une étiquette sans la télécharger en effectuant une vérification de version. - Les vérifications de version ne comptent pas dans la tarification d'utilisation.
- Un téléchargement pour une image normale fait un téléchargement pour un manifeste unique.
- Un téléchargement pour une image multi-architecture compte comme un téléchargement pour chaque architecture différente.
Attribution des téléchargements
Les téléchargements des utilisateurs authentifiés peuvent être attribués soit à un espace de noms personnel soit à un espace de noms d'organisation.
L'attribution est basée sur ce qui suit :
- Téléchargements privés : Les téléchargements pour les dépôts privés sont attribués au propriétaire de l'espace de noms du dépôt.
- Téléchargements publics : Lors du téléchargement d'images depuis un dépôt public, l'attribution est déterminée en fonction de l'affiliation au domaine et de l'appartenance à l'organisation.
- Propriété de domaine vérifiée : Lors du téléchargement d'une image depuis un compte lié à un domaine vérifié, l'attribution est définie comme étant le propriétaire de ce domaine.
- Appartenance à une seule organisation :
- Si le propriétaire du domaine vérifié est une entreprise et l'utilisateur fait partie d'une seule organisation au sein de cette entreprise, le téléchargement est attribué à cette organisation spécifique.
- Si l'utilisateur fait partie d'une seule organisation, le téléchargement est attribué à cette organisation spécifique.
- Appartenances à plusieurs organisations : Si l'utilisateur fait partie de plusieurs organisations sous l'entreprise, le téléchargement est attribué à l'espace de noms personnel de l'utilisateur.
Authentification
Pour assurer une attribution correcte de vos téléchargements, vous devez vous authentifier avec Docker Hub. Les sections suivantes fournissent des informations sur comment se connecter à Docker Hub pour authentifier vos téléchargements.
Docker Desktop
Si vous utilisez Docker Desktop, vous pouvez vous connecter à Docker Hub depuis le menu Docker Desktop.
Sélectionnez Se connecter / Créer un ID Docker depuis le menu Docker Desktop et suivez les instructions à l'écran pour compléter le processus de connexion.
Docker Engine
Si vous utilisez une version autonome de Docker Engine, exécutez la commande docker login
depuis un terminal pour vous authentifier avec Docker Hub. Pour des informations sur comment
utiliser la commande, voir
docker login.
Docker Swarm
Si vous exécutez Docker Swarm, vous devez utiliser le flag --with-registry-auth
pour
vous authentifier avec Docker Hub. Pour plus d'informations, voir
Créer un
service. Si vous
utilisez un fichier Docker Compose pour déployer une pile d'applications, voir
docker
stack deploy.
GitHub Actions
Si vous utilisez GitHub Actions pour construire et pousser des images Docker vers Docker Hub, voir action login. Si vous utilisez une autre Action, vous devez ajouter votre nom d'utilisateur et jeton d'accès de manière similaire pour l'authentification.
Kubernetes
Si vous exécutez Kubernetes, suivez les instructions dans Télécharger une Image depuis un Registre Privé pour des informations sur l'authentification.
Plateformes tierces
Si vous utilisez des plateformes tierces, suivez les instructions de votre fournisseur sur l'utilisation de l'authentification de registre.
NoteLors du téléchargement d'images via une plateforme tierce, la plateforme peut utiliser la même adresse IPv4 ou sous-réseau IPv6 /64 pour télécharger des images pour plusieurs utilisateurs. Même si vous êtes authentifié, les téléchargements attribués à une seule adresse IPv4 ou sous-réseau IPv6 /64 peuvent causer une limitation du taux d'abus.
- Artifactory
- AWS CodeBuild
- AWS ECS/Fargate
- Azure Pipelines
- Chipper CI
- CircleCI
- Codefresh
- Drone.io
- GitLab
- LayerCI
- TeamCity
Visualiser les téléchargements mensuels et l'utilisation incluse
Vous pouvez visualiser vos téléchargements mensuels sur la page Utilisation dans Docker Hub.
Sur cette page, vous pouvez également envoyer un rapport à votre email qui contient un fichier séparé par virgules avec les informations détaillées suivantes.
Colonne CSV | Définition | Guidance d'utilisation |
---|---|---|
datehour |
La date et l'heure (yyyy/mm/dd/hh ) du téléchargement qui a résulté en transfert de données. |
Ceci aide à identifier les heures de pointe d'utilisation et les patterns. |
user_name |
L'ID Docker de l'utilisateur qui a téléchargé l'image | Ceci permet aux propriétaires d'organisation de suivre la consommation de données par utilisateur et de gérer les ressources efficacement. |
repository |
Le nom du dépôt de l'image qui a été téléchargée. | Ceci vous permet d'identifier quels dépôts sont le plus fréquemment accédés et consomment le plus de transfert de données. |
access_token_name |
Nom du jeton d'accès qui a été utilisé pour l'authentification avec Docker CLI. Les jetons generated sont automatiquement générés par le client Docker quand un utilisateur se connecte. |
Les jetons d'accès personnels sont généralement utilisés pour authentifier des outils automatisés (Docker Desktop, outils CI/CD, etc.). Ceci est utile pour identifier quel système automatisé a émis le téléchargement. |
ips |
L'adresse IP qui a été utilisée pour télécharger l'image. Ce champ est agrégé, donc plus d'une adresse IP peut apparaître, représentant toutes les IPs utilisées pour télécharger une image dans la même date et heure. | Ceci vous aide à comprendre l'origine du transfert de données, ce qui est utile pour diagnostiquer et identifier les patterns dans les téléchargements automatisés ou manuels. |
repository_privacy |
L'état de confidentialité du dépôt d'image qui a été téléchargé. Ceci peut être soit public soit private . |
Ceci distingue entre les dépôts publics et privés pour identifier quel seuil de transfert de données le téléchargement impacte. |
tag |
L'étiquette pour l'image. L'étiquette n'est disponible que si le téléchargement incluait une étiquette. | Ceci aide à identifier l'image. Les étiquettes sont souvent utilisées pour identifier des versions spécifiques ou variants d'une image. |
digest |
Le digest d'image unique pour l'image. | Ceci aide à identifier l'image. |
version_checks |
Le nombre de vérifications de version accumulées pour la date et l'heure de chaque dépôt d'image. Selon le client, un téléchargement peut faire une vérification de version pour vérifier l'existence d'une image ou étiquette sans la télécharger. | Ceci aide à identifier la fréquence des vérifications de version, que vous pouvez utiliser pour analyser les tendances d'utilisation et les comportements inattendus potentiels. |
pulls |
Le nombre de téléchargements accumulés pour la date et l'heure de chaque dépôt d'image. | Ceci aide à identifier la fréquence des téléchargements de dépôt, que vous pouvez utiliser pour analyser les tendances d'utilisation et les comportements inattendus potentiels. |
Visualiser le taux et la limite de téléchargement
La limite de taux de téléchargement est calculée sur une base de 6 heures. Il n'y a pas de limite de taux de téléchargement pour les utilisateurs ou systèmes automatisés avec un abonnement payant. Les utilisateurs non authentifiés et Docker Personal utilisant Docker Hub feront l'expérience de limites de taux sur les téléchargements d'images.
Quand vous émettez un téléchargement et que vous dépassez la limite, Docker Hub retourne un
code de réponse 429
avec le corps suivant quand le manifeste est demandé :
You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limits
Ce message d'erreur apparaît dans la CLI Docker ou dans les journaux du moteur Docker.
Pour visualiser votre taux et limite de téléchargement actuels :
NotePour vérifier vos limites, vous avez besoin de
curl
,grep
, etjq
installés.
-
Obtenez un jeton.
-
Pour obtenir un jeton anonymement, si vous téléchargez anonymement :
$ TOKEN=$(curl "https://auth.docker.io/token?service=registry.docker.io&scope=repository:ratelimitpreview/test:pull" | jq -r .token)
-
Pour obtenir un jeton avec un compte utilisateur, si vous êtes authentifié, insérez votre nom d'utilisateur et mot de passe dans la commande suivante :
$ TOKEN=$(curl --user 'username:password' "https://auth.docker.io/token?service=registry.docker.io&scope=repository:ratelimitpreview/test:pull" | jq -r .token)
-
-
Obtenez les en-têtes qui contiennent vos limites. Ces en-têtes sont retournés sur les requêtes GET et HEAD. Utiliser GET émule un vrai téléchargement et compte vers la limite. Utiliser HEAD ne le fera pas.
$ curl --head -H "Authorization: Bearer $TOKEN" https://registry-1.docker.io/v2/ratelimitpreview/test/manifests/latest
-
Examinez les en-têtes. Vous devriez voir les en-têtes suivants.
ratelimit-limit: 100;w=21600 ratelimit-remaining: 20;w=21600 docker-ratelimit-source: 192.0.2.1
Dans l'exemple précédent, la limite de téléchargement est de 100 téléchargements par 21600 secondes (6 heures), et il reste 20 téléchargements.
Si vous ne voyez aucun en-tête
ratelimit
, cela pourrait être parce que l'image ou votre IP est illimitée en partenariat avec un éditeur, fournisseur, ou une organisation open source. Cela pourrait aussi signifier que l'utilisateur avec lequel vous téléchargez fait partie d'un abonnement Docker payant. Télécharger cette image ne comptera pas vers les limites de taux de téléchargement si vous ne voyez pas ces en-têtes.