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

Labels des objets Docker

Les labels sont un mécanisme pour appliquer des métadonnées aux objets Docker, notamment :

  • Images
  • Conteneurs
  • Daemons locaux
  • Volumes
  • Réseaux
  • Nœuds Swarm
  • Services Swarm

Vous pouvez utiliser les labels pour organiser vos images, enregistrer des informations de licence, annoter les relations entre conteneurs, volumes et réseaux, ou de toute manière qui fait sens pour votre entreprise ou votre application.

Clés et valeurs des labels

Un label est une paire clé-valeur, stockée sous forme de chaîne. Vous pouvez spécifier plusieurs labels pour un objet, mais chaque clé doit être unique au sein d'un objet. Si la même clé reçoit plusieurs valeurs, la valeur écrite le plus récemment écrase toutes les valeurs précédentes.

Recommandations de format de clé

Une clé de label est le côté gauche de la paire clé-valeur. Les clés sont des chaînes alphanumériques qui peuvent contenir des points (.), des traits de soulignement (_), des barres obliques (/) et des traits d'union (-). La plupart des utilisateurs Docker utilisent des images créées par d'autres organisations, et les directives suivantes aident à prévenir la duplication involontaire de labels entre objets, surtout si vous prévoyez d'utiliser les labels comme mécanisme d'automatisation.

  • Les auteurs d'outils tiers devraient préfixer chaque clé de label avec la notation DNS inversée d'un domaine qu'ils possèdent, comme com.example.some-label.

  • N'utilisez pas un domaine dans votre clé de label sans la permission du propriétaire du domaine.

  • Les espaces de noms com.docker.*, io.docker.* et org.dockerproject.* sont réservés par Docker pour un usage interne.

  • Les clés de label devraient commencer et finir par une lettre minuscule et ne devraient contenir que des caractères alphanumériques minuscules, le caractère point (.) et le caractère trait d'union (-). Les points ou traits d'union consécutifs ne sont pas autorisés.

  • Le caractère point (.) sépare les "champs" d'espace de noms. Les clés de label sans espaces de noms sont réservées pour l'usage CLI, permettant aux utilisateurs du CLI d'étiqueter interactivement les objets Docker en utilisant des chaînes plus courtes et conviviales pour la saisie.

Ces directives ne sont actuellement pas appliquées et des directives supplémentaires peuvent s'appliquer à des cas d'usage spécifiques.

Directives de valeur

Les valeurs de label peuvent contenir n'importe quel type de données qui peut être représenté comme une chaîne, y compris (mais sans s'y limiter) JSON, XML, CSV ou YAML. La seule exigence est que la valeur soit sérialisée en chaîne d'abord, en utilisant un mécanisme spécifique au type de structure. Par exemple, pour sérialiser JSON en chaîne, vous pourriez utiliser la méthode JavaScript JSON.stringify().

Comme Docker ne désérialise pas la valeur, vous ne pouvez pas traiter un document JSON ou XML comme une structure imbriquée lors de la requête ou du filtrage par valeur de label à moins que vous construisiez cette fonctionnalité dans des outils tiers.

Gérer les labels sur les objets

Chaque type d'objet avec support pour les labels a des mécanismes pour les ajouter et les gérer et les utiliser en relation avec ce type d'objet. Ces liens fournissent un bon point de départ pour apprendre comment vous pouvez utiliser les labels dans vos déploiements Docker.

Les labels sur les images, conteneurs, daemons locaux, volumes et réseaux sont statiques pour la durée de vie de l'objet. Pour changer ces labels, vous devez recréer l'objet. Les labels sur les nœuds et services Swarm peuvent être mis à jour dynamiquement.