Concepts relatifs aux conteneurs

Artifact Registry vous permet de stocker et d'organiser des images de conteneurs et d'autres artefacts dans des dépôts afin de gérer et de déployer des charges de travail dans différents environnements. Vous pouvez utiliser des calques d'image, des tags et des condensés de fichier manifeste pour contrôler le versionnage des images et gérer les déploiements.

Les exemples Artifact Registry de cette page font principalement référence aux dépôts au format Docker. Pour en savoir plus, consultez Formats compatibles et Présentation du dépôt.

Registres

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

Les services de registre tels que Docker Hub et Artifact Registry permettent de 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 l'empreinte de vos dépendances, consultez Gestion des dépendances.

Les registres sont organisés en dépôts qui stockent des images de conteneurs 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 résumé et peut être associée à un tag. Les tags peuvent être modifiables ou immuables. Pour en savoir plus sur les versions et les tags des images de conteneurs, consultez Versions des images de conteneurs.

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 et le nom de l'image, ainsi que le tag ou le condensé 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 est 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 votreGoogle Cloud ID de projet.
  • quickstart-docker-repo est l'espace de noms de votre projet dans lequel vous stockez les images. 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é l'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 conteneurs 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 Qu'est-ce qu'un conteneur ?.

Les images sont transférées ou importées dans des dépôts, et extraites ou téléchargées à partir de dépôts. Pour spécifier l'image et la version correctes, 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 Noms de dépôts et d'images.

de l'image

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

Lorsque vous supprimez une image de conteneur, les calques ne sont pas supprimés immédiatement. Les calques qui ne sont référencés par aucune image dans le registre sont supprimés tous les jours.

Tags

Les utilisateurs ajoutent des tags lorsqu'ils transfèrent ou extraient une image vers ou depuis un dépôt pour spécifier la version d'une image. Une image peut comporter 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 sans tag reste accessible à l'aide de ses résumés de fichier manifeste.

Si vous utilisez des tags 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 un tag d'une image.
  • Transférez 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 envoyées 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 envoyée à 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 ne soit pas à jour. Nous vous recommandons d'utiliser des tags autres que latest pour les versions.

Fichiers manifestes

Les fichiers manifestes d'image identifient de manière unique les couches de chaque image et les spécifient. Les fichiers manifestes sont identifiés par des hachages SHA-256 uniques appelés "condensés de fichier manifeste". Les condensés de fichier manifeste sont plus fiables et plus 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, ce qui laisse certaines images sans tag. En revanche, chaque image est spécifiée de manière unique par son condensé de fichier manifeste.

Si vous utilisez des outils pour analyser ou scanner des images, les résultats ne sont valables que pour l'image scannée. Pour garantir que vous déployez 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 les tags et les fichiers manifestes spécifiques à Artifact Registry, consultez Gérer les images et Utiliser des images de conteneurs.

Préchauffage des images

Pour les applications sensibles à la latence qui utilisent le streaming d'images, l'attente de l'extraction d'une image pour la première fois sur un nouveau nœud ou une nouvelle instance, souvent appelée "démarrage à froid", peut entraîner des retards indésirables. Le préchauffage vous permet de lancer explicitement le téléchargement d'images dans le cache Image Streaming avant qu'elles ne soient demandées. Ce processus permet de s'assurer que votre image est disponible pour une diffusion rapide lorsque votre cluster GKE la demande.

Pour préchauffer des images, utilisez l'API Artifact Registry. Pour obtenir des instructions, consultez Réduire la latence avec le préchauffage d'image.

Étapes suivantes