Concepts relatifs aux conteneurs

Ce document présente les concepts clés liés aux conteneurs, à savoir : des registres, des dépôts et des artefacts. Quelques informations de base sur la façon dont ces s'appliquent à Artifact Registry et Container Registry sont également incluses.

Registres

Un registre stocke et distribue les images de conteneurs et les artefacts organisés par dans repositories (dépôts). Un registre peut contenir un seul dépôt ou plusieurs dépôts, qui peuvent être publics ou privés.

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. Lors de l'extraction d'images publiques, il est important de comprendre les problèmes de sécurité possibles. En savoir plus gestion des dépendances pour en savoir plus sur les failles et de réduire votre empreinte de dépendances.

Les registres sont organisés en dépôts qui stockent des conteneurs individuels images. Artifact Registry vous permet de créer plusieurs dépôts dans un seul projet et lui associer un régional ou multirégional avec chaque dépôt. Les dépôts associés peuvent être regroupés par étiquettes.

Dépôts

Les images et les artefacts portant le même nom, mais avec des tags différents, 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, l'image comporte le tag latest. Si une autre image est transmise sans tag, le tag latest est déplacé de l'image d'origine vers l'image plus récente, laissant la première image sans tag. Nous vous recommandons d'ajouter un tag autre que latest.

Le terme dépôt n'est pas toujours utilisé de manière cohérente. dans Artifact Registry il est plus utile d'utiliser des parties du chemin vers l'image pour identifier le projet, régional ou multirégional , ainsi que le nom de l'image et le tag ou condensé du fichier manifeste pour identifier la bonne version.

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 Docker.
  • PROJECT est l'espace de noms créé par l'ID de votre projet Google Cloud.
  • quickstart-docker-repo est l'espace de noms dans le projet dans lequel vous stockez images. Dans Artifact Registry, cette partie du chemin d'accès est appelée un dépôt de clés.
  • quickstart-image est le dépôt pour toutes les versions de quickstart-image. et est souvent appelée 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 des logiciels qui contiennent tous les éléments nécessaires pour fonctionner dans n'importe quel environnement. Lue Pour en savoir plus, consultez la section Que sont les conteneurs ?

Les images sont transmises ou importées dans des dépôts, puis retirées ou téléchargées à partir de dépôts. Afin de spécifier la bonne image et la bonne version, l'unique le registre et l'artefact doivent être spécifiés.

Exemple :

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

  • us-west1-docker.pkg.dev est le registre
  • /google-samples/containers/gke/ sont l'espace de noms et les sous-espaces de noms. Dans Artifact Registry google-samples correspond au projet Google Cloud et containers désigne le dépôt Artifact Registry
  • hello-app est le nom de l'artefact.
  • :1.0 est le tag qui spécifie la version de l'artefact à extraire.

de l'image

Les images de conteneurs stockées dans des 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 en fonction du type d'image (par exemple, chaque instruction dans un 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 les différents registres.

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

Tags

Les utilisateurs ajoutent des tags lors du transfert ou de l'extraction d'une image vers un dépôt afin de spécifier la d'une image. Une image peut comporter un ou plusieurs tags, voire aucun tag. Si vous transférez deux fois une image avec le même tag, le tag est supprimé du tag première image et est déplacée vers la seconde, laissant la première image sans tag. La l'image sans tag est toujours accessible via les condensés du fichier manifeste.

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

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.

Notez bien 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 l'image latest soit derrière 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'images identifient et spécifient les calques de chaque image de manière unique. Les fichiers manifestes sont identifiés par des hachages SHA-256 uniques, appelés "condensés du fichier manifeste". Les condensés de fichier manifeste sont plus fiables et sécurisés que les tags, car plusieurs versions de la même image peuvent être transmises à la même balise, laissant certaines images sans balise, tandis que chaque image est spécifiée de manière unique par son condensé de fichier manifeste.

Si vous utilisez des outils pour analyser des images, les résultats de ces outils valide pour l'image analysée. Pour garantir le déploiement de l'image vous ne pouvez pas vous fier au tag, car l'image associée peut le changement.

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

Étape suivante