⚠️ Traduction non officielle - Cette documentation est une traduction communautaire non officielle de Docker.

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.

Note

Lors 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.

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 :

Note

Pour vérifier vos limites, vous avez besoin de curl, grep, et jq installés.

  1. 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)
      
  2. 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
    
  3. 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.