Concepts relatifs aux conteneurs

Ce document présente les concepts clés liés aux images de conteneur, y compris les registres, les dépôts et les artefacts. Des informations de base sur l'application de ces concepts à Artifact Registry et Container Registry sont également incluses.

Les exemples d'Artifact Registry sur cette page font principalement référence aux dépôts au format Docker et gcr.io. Pour en savoir plus, consultez les pages Formats acceptés et Présentation du dépôt.

Registres

Un registre stocke et distribue des images et des artefacts de conteneur organisés par nom dans des dépôts. Un registre peut contenir un seul dépôt ou plusieurs dépôts, et peut être public ou privé.

Les services de registre tels que Docker Hub et Artifact Registry offrent des options pour créer des dépôts publics ou privés. Lorsque vous extrayez des images publiques, il est important de comprendre les problèmes de sécurité potentiels. Pour en savoir plus sur la surveillance des failles et la réduction de votre empreinte de dépendances, consultez la page sur la gestion des dépendances.

Les registres sont organisés en dépôts qui stockent des images de conteneur individuelles. Artifact Registry vous permet de créer plusieurs dépôts dans un seul projet et d'associer un emplacement régional ou multirégional spécifique à chaque dépôt. Les dépôts associés peuvent être regroupés par libellés.

Dépôts Artifact Registry et gestion des images

Dans les dépôts Artifact Registry au format Docker, vous pouvez stocker plusieurs images de conteneurs portant des noms différents dans le même dépôt. Chaque version d'une image est identifiée par son condensé et peut être associée à une balise. Les balises peuvent être modifiables ou immuables. Pour en savoir plus sur les versions et les tags d'images de conteneur, consultez la section Versions d'images de conteneur.

Artifact Registry fait généralement référence à des parties du chemin d'accès à une image pour identifier le projet, l'emplacement régional ou multirégional, ainsi que le nom de l'image, ainsi que le tag ou le récapitulatif du fichier manifeste pour identifier la version correcte.

Exemple :

docker push us-west1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

  • us-west1 correspond à l'emplacement du dépôt.
  • docker.pkg.dev est le nom d'hôte des dépôts au format Docker.
  • PROJECT est l'espace de noms créé par votre ID de projetGoogle Cloud.
  • quickstart-docker-repo est l'espace de noms dans lequel vous stockez les images de votre projet. Dans Artifact Registry, cette partie du chemin d'accès est appelée dépôt.
  • quickstart-image est le nom de toutes les versions de quickstart-image et est souvent appelé image.
  • tag1 est le tag qui spécifie la version de l'image.

Images

Les artefacts et les images peuvent être stockés dans Artifact Registry. Un artefact peut être n'importe quoi: un fichier texte, une image Docker ou un graphique Helm, tandis qu'une image fait généralement référence à une image de conteneur. Les images de conteneur sont des packages logiciels qui contiennent tous les éléments nécessaires pour s'exécuter dans n'importe quel environnement. Pour en savoir plus, consultez la section Que sont les conteneurs ?

Les images sont transférées ou importées dans des dépôts, et téléchargées ou téléchargées à partir de ces dépôts. Pour spécifier l'image et la version appropriées, vous devez indiquer le registre et l'artefact uniques.

Pour en savoir plus sur les noms de dépôts et d'images dans Artifact Registry, consultez la section Noms des dépôts et des images.

de l'image

Les images de conteneur stockées dans des dépôts sont créées de manière incrémentielle à l'aide de couches. Différentes images peuvent utiliser certaines des mêmes couches. Les calques sont définis différemment selon le type d'image. Par exemple, chaque instruction d'un Dockerfile correspond à une couche dans l'image Docker. Dans un registre, les images avec des calques communs partagent ces calques, ce qui améliore l'efficacité du stockage. Pour des raisons de sécurité, les couches ne sont pas partagées entre les différents registres.

Lorsque vous supprimez une image de conteneur, les couches ne sont pas immédiatement supprimées. Les calques qui ne sont référencés par aucune image du registre sont supprimés quotidiennement.

Tags

Les utilisateurs ajoutent des tags lorsqu'ils transfèrent ou extraient une image vers un dépôt pour spécifier la version de l'image. Une image peut avoir une ou plusieurs balises, ou aucune. Si vous utilisez des tags modifiables et que vous transférez une image deux fois avec le même tag, le tag est supprimé de la première image et déplacé vers la seconde, laissant la première image sans tag. L'image non taguée est toujours accessible à l'aide de ses récapitulatifs de fichier manifeste.

Si vous utilisez des balises immuables, les actions suivantes ne sont pas autorisées:

  • Supprimez une image taguée. La suppression des images non taguées reste autorisée.
  • Supprimez une balise d'une image.
  • Transférer une image avec un tag déjà utilisé par une autre version de l'image dans le dépôt

La balise latest est une balise spéciale ajoutée lorsque des images sont transmises sans balise.

Exemple :

docker push us-west1-docker.pkg.dev/my-project/my-repo/hello-app

transfère l'image vers hello-app:latest

docker pull us-west1-docker.pkg.dev/my-project/my-repo/hello-app

extrait l'image hello-app:latest.

Il est important de noter que lorsqu'une image est transmise à un dépôt avec un tag autre que latest, le tag latest n'est pas ajouté. Il est donc possible que l'image latest soit en retard sur les modifications les plus récentes. Nous vous recommandons d'utiliser des tags autres que latest pour les versions.

Fichiers manifestes

Les fichiers manifestes d'image identifient et spécifient de manière unique les calques de chaque image. Les fichiers manifestes sont identifiés par des hachages SHA-256 uniques appelés condensés de manifeste. Les condensés de fichier manifeste sont plus fiables et sécurisés que les tags, car dans les dépôts avec des tags modifiables, plusieurs versions de la même image peuvent être transférées vers le même tag, laissant certaines images sans tag, tandis que chaque image est spécifiée de manière unique par son condensé de fichier manifeste.

Si vous utilisez des outils pour scanner ou analyser des images, les résultats de ces outils ne sont valides que pour l'image scannée. Pour vous assurer de déployer l'image scannée, vous ne pouvez pas compter sur le tag, car l'image référencée par le tag peut changer.

Pour en savoir plus sur le taggage et les fichiers manifestes spécifiques à Artifact Registry, consultez les pages Gérer les images et Utiliser des images de conteneur.

Étape suivante