Ce document présente les concepts clés liés aux conteneurs, 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.
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
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, elle est taguée avec le tag latest (dernière). 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'attribuer aux versions une balise autre que latest.
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, avec 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 Docker.PROJECT
est l'espace de noms créé par votre ID de projet Google 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 dépôt de toutes les versions dequickstart-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 spécifier le registre et l'artefact uniques.
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/
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
correspond au nom de l'artefact.:1.0
est le tag spécifiant la version de l'artefact à extraire.
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 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 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 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 via ses condensés de fichier manifeste.
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 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 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
- Démarrage rapide de Docker
- Utiliser des images de conteneurs
- Démarrage rapide de Helm
- Utiliser des charts Helm
- Découvrez le DevOps et le programme de recherche DORA.