Concepts liés aux conteneurs

Ce document présente les concepts clés liés aux conteneurs, tels que les registres, les dépôts et les artefacts. Certaines informations de base sur la manière dont ces concepts s'appliquent à Artifact Registry et Container Registry sont également incluses.

Registres

Un registre stocke et distribue des images de conteneurs et des artefacts organisés par nom dans les dépôts. Un registre peut contenir un seul dépôt ou plusieurs dépôts. Il 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é possibles. Consultez la page Gestion des dépendances pour plus d'informations sur la surveillance des failles et la réduction de l'empreinte des dépendances.

Les registres sont organisés dans des 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 une région ou un emplacement multirégional spécifique à chaque dépôt. Les dépôts associés peuvent être regroupés par libellés.

Dépôts

Les images et les artefacts portant le même nom, mais dont les différents tags sont organisés dans des dépôts. Si aucun tag n'est spécifié lorsqu'une image est transférée vers un dépôt, le tag latest est ajouté à l'image. Si une autre image est transférée sans spécifier de tag, le tag latest est déplacé de l'image d'origine vers l'image la plus récente, laissant la première image sans tag. Nous vous recommandons d'attribuer un tag différent de latest.

Termedépôt n'est pas toujours utilisé de façon cohérente ; dans Artifact Registry, il est plus utile d'utiliser des parties du chemin d'accès à l'image afin d'identifier le projet.région ou emplacement multirégional et le nom de l'image avec lebalise ourécapitulatif complet pour identifier la bonne version.

Exemple :

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

  • us-central1 est l'emplacement du dépôt.
  • docker.pkg.dev est le nom d'hôte des dépôts Docker.
  • PROJECT est l'espace de noms créé par votre ID de projet Google Cloud.
  • quickstart-docker-repo est l'espace de noms dans votre projet où vous stockez des images. Dans Artifact Registry, cette partie du chemin est appelée "dépôt".
  • quickstart-image est le dépôt de toutes les versions de quickstart-image et est souvent appelé image.
  • tag1 est le tag spécifiant la version de l'image.

Images

Les artefacts et les images peuvent être stockés dans Artifact Registry. Un artefact peut être constitué d'un fichier texte, d'une image Docker ou d'un chart 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 plus d'informations, consultez la page Que sont les conteneurs.

Les images sont transmises 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 spécifier un registre et un artefact uniques.

Exemple :

docker pull us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0

  • us-docker.pkg.dev correspond au registre, y compris l'emplacement multirégional us.
  • /google-samples/containers/gke/ sont l'espace de noms et les sous-espaces de noms. Dans Artifact Registry, google-samples est le projet Google Cloud et containers est appelé le dépôt Artifact Registry.
  • hello-app est le nom de l'artefact.
  • :1.0 est le tag spécifiant la version de l'artefact à extraire ;

Couches

Les images de conteneurs stockées dans des dépôts sont construites de manière incrémentielle à l'aide de couches. Certaines images peuvent utiliser certaines des mêmes couches. Les couches sont définies de différentes manières en fonction du 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 couches communes partagent ces couches, ce qui augmente l'efficacité du stockage. Pour des raisons de sécurité, les couches ne sont pas partagées entre différents registres.

Tags

Les utilisateurs ajoutent des tags lors du transfert ou de l'extraction d'une image vers un dépôt pour spécifier la version d'une image. Une image peut avoir un ou plusieurs tags, ou aucun tag. Si vous envoyez une image deux fois avec le même tag, le tag est supprimé de la première image et déplacé vers la deuxième, laissant la première image sans tag. L'image non étiquetée reste accessible via ses condensés manifestes.

Le tag latest est un tag spécial ajouté lorsque des images sont transférées sans tag.

Exemple :

docker push us-docker.pkg.dev/google-samples/containers/gke/hello-app

Transfert de l'image vers hello-app:latest

docker pull us-docker.pkg.dev/google-samples/containers/gke/hello-app

extrait l'image hello-app:latest.

Il est important de noter que lorsqu'une image est transférée vers un dépôt avec un tag autre que latest, le tag latest n'est pas ajouté. Il est donc possible que le latest l'image associée aux modifications les plus récentes. Nous vous recommandons d'utiliser d'autres tags que latest pour les versions. Pour en savoir plus sur l'ajout de tags aux images, consultez la page Ajouter des tags appropriés aux images.

Fichiers manifestes

Les fichiers manifestes identifient et spécifient de manière unique les couches présentes dans chaque image. Les fichiers manifestes sont identifiés par des hachages SHA-256 uniques appelés "condensés manifestes". Les condensés des fichiers manifestes sont plus fiables et plus sécurisés que les tags, car plusieurs versions d'une même image peuvent être transmises au même tag, laissant certaines images sans tag, tandis que chaque image est spécifiée de manière unique par son condensé manifeste.

Si vous utilisez des outils pour analyser ou analyser des images, les résultats de ces outils ne sont valides que pour l'image analysée. Pour garantir le déploiement de l'image analysée, vous ne pouvez pas vous appuyer sur la balise, car celle-ci peut changer.

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

Étape suivante