Ce document présente les concepts clés liés aux conteneurs, y compris les registres, les dépôts et les artefacts. Certaines informations de base sur l'application de ces concepts à Artifact Registry et Container Registry sont également incluses.
Registres
Un registre stocke et distribue des images de conteneur et des artefacts 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 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 éventuels problèmes de sécurité. Consultez la page sur la gestion des dépendances pour en savoir plus sur la surveillance des failles et sur la réduction de l'empreinte 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 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 qui portent le même nom, mais qui sont associés à des tags différents sont organisés en dépôts. Si aucun tag n'est spécifié lors du transfert d'une image vers un dépôt, l'image est taguée avec le tag latest. Si une autre image est transmise sans spécifier de tag, le tag latest est déplacé de l'image d'origine vers l'image la plus récente, la première image étant laissée sans tag. Nous vous recommandons d'attribuer aux versions 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 d'accès à l'image pour identifier le projet, la région ou l'emplacement multirégional, le nom de l'image ainsi que le tag ou le condensé du fichier manifeste afin d'identifier la version correcte.
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 l'ID de votre projet Google Cloud.
quickstart-docker-repo
est l'espace de noms sous votre projet dans lequel 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 dequickstart-image
. Il 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. Il peut s'agir d'un fichier texte, d'une image Docker ou d'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 plus d'informations, consultez la section Qu'est-ce que sont les conteneurs ?
Les images sont transmises ou importées dans des dépôts, puis extraites ou téléchargées à partir de dépôts. Pour spécifier l'image et la version appropriées, 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égionalus
./google-samples/containers/gke/
correspond à l'espace de noms et aux sous-espaces de noms. Dans Artifact Registry,google-samples
correspond au projet Google Cloud etcontainers
est appelé dépôt Artifact Registry.hello-app
est le nom de l'artefact.:1.0
est la balise spécifiant 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 couches. Différentes images peuvent utiliser certains des mêmes calques. Les couches sont définies de différentes manières en fonction du type d'image. Par exemple, chaque instruction d'un Dockerfile correspond à une couche de l'image Docker. Dans un registre, les images ayant 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 comporter un ou plusieurs tags, ou n'en comporter aucun. 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 seconde, la première image ne contenant pas de tag. L'image sans balise reste accessible via les condensés du fichier manifeste.
La balise latest
est une balise spéciale ajoutée lorsque les images sont transmises sans balise.
Exemple :
docker push us-docker.pkg.dev/google-samples/containers/gke/hello-app
transfère 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 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. Pour en savoir plus sur l'ajout de tags aux images, découvrez comment ajouter des tags appropriés à vos images.
Fichiers manifestes
Ils identifient et spécifient de manière unique les couches de chaque image. Les fichiers manifestes sont identifiés par des hachages SHA-256 uniques appelés "condensés de fichiers manifestes". Les condensés des fichiers manifestes sont plus fiables et sécurisés que les tags, car plusieurs versions de la 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é du fichier manifeste.
Si vous utilisez des outils pour analyser ou analyser des images, leurs résultats ne sont valables que pour l'image analysée. Pour garantir le déploiement de l'image analysée, vous ne pouvez pas vous appuyer sur le tag, car l'image référencée par ce tag est susceptible de 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 conteneurs.
Étapes suivantes
- Démarrage rapide de Docker
- Utiliser des images de conteneurs
- Guide de démarrage rapide de Helm
- Utiliser des charts Helm
- Consultez nos ressources sur le DevOps et découvrez notre programme de recherche.