Présentation de Container Registry

Container Registry est un registre privé d'images de conteneurs qui s'exécute sur Google Cloud Platform. Container Registry est compatible avec les formats d'images Docker Image Manifest V2 et OCI.

De nombreuses personnes utilisent Docker Hub comme registre central pour stocker des images Docker publiques. Cependant, pour contrôler l'accès à vos images, vous devez utiliser un registre privé tel que Container Registry.

Des points de terminaison HTTPS vous permettent d'accéder à Container Registry en toute sécurité pour stocker, extraire et gérer des images depuis tout type de système et d'instance de VM, ou à partir de votre propre matériel. De plus, vous pouvez configurer Docker avec l'outil de ligne de commande de l'assistant d'identification Docker pour vous authentifier directement auprès de Container Registry.

Nom du registre

Les registres dans Container Registry sont nommés selon l'hôte et l'ID du projet. Pour travailler avec des images (par exemple, retrait, envoi, suppression), identifiez l'image en utilisant le format suivant :

[HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG]

ou

[HOSTNAME]/[PROJECT-ID]/[IMAGE]@[IMAGE_DIGEST]

où :

  • [HOSTNAME] est l'une des quatre options suivantes :

    • gcr.io : héberge les images aux États-Unis, mais cet emplacement peut être amené à changer par la suite.
    • us.gcr.io : héberge les images aux États-Unis, dans un bucket de stockage distinct des images hébergées par gcr.io.
    • eu.gcr.io : héberge les images dans l'Union européenne.
    • asia.gcr.io : héberge les images en Asie.

    Lorsque vous stockez une image dans un registre avec un nouveau nom d'hôte, Container Registry crée un bucket de stockage dans l'emplacement multirégional spécifié. Ce bucket forme le stockage sous-jacent du registre. Cet emplacement n'est pas votre emplacement, mais celui où les images sont stockées. Dans un projet, tous les registres portant le même nom d'hôte partagent un bucket de stockage.

  • [PROJECT-ID] est l'ID de votre projet dans la console Google Cloud Platform. Si votre ID de projet contient deux points (:), consultez la section Projets à l'échelle du domaine ci-dessous.

  • [IMAGE] correspond au nom de l'image. Il peut être différent du nom local de l'image. Dans la console Google Cloud Platform, les registres du projet sont répertoriés en fonction du nom de l'image. Chaque dépôt peut contenir plusieurs images du même nom. Par exemple, un dépôt peut contenir différentes versions d'une image appelée "quickstart-image".

  • L'ajout des suffixes :[TAG] et @[IMAGE_DIGEST] vous permet de distinguer une version spécifique de l'image (facultatif). Si vous ne spécifiez pas de tag, ni de condensé, Container Registry recherche l'image avec le tag par défaut latest. Consultez la section Versions d'images dans un registre ci-dessous.

Par exemple, dans le démarrage rapide, le registre de l'image de démarrage rapide est gcr.io/[PROJECT-ID]. Pour stocker et sortir l'image, utilisez le format :

gcr.io/[PROJECT-ID]/quickstart-image:tag1

[PROJECT-ID] est l'ID de votre projet dans la console Google Cloud Platform.

Versions d'images dans un registre

Un registre peut contenir plusieurs images, qui peuvent avoir différentes versions. Pour identifier une version spécifique de l'image dans un registre, vous pouvez spécifier le tag ou le condensé de l'image. Les tags sont uniques pour chaque image dans un registre. Les condensés sont générés automatiquement et sont uniques pour chaque version d'une image. Ils prennent la forme @[IMAGE_DIGEST], où [IMAGE_DIGEST] est la valeur de hachage sha256 du contenu de l'image.

Par exemple, dans le démarrage rapide, pour identifier une version spécifique de l'image :

  • Ajoutez le tag de l'image :

    gcr.io/[PROJECT-ID]/quickstart-image:tag1
    
  • Ou ajoutez le condensé de l'image :

    gcr.io/[PROJECT-ID]/quickstart-image@sha256:4d11e24ba8a615cc85a535daa17b47d3c0219f7eeb2b8208896704ad7f88ae2d
    

[PROJECT-ID] est l'ID de votre projet dans la console Google Cloud Platform. Si votre ID de projet contient deux points (:), consultez la section Projets à l'échelle du domaine.

Dans la console, sur l'écran Images, la colonne Tags répertorie les tags de l'image. Cliquez sur la version de l'image pour voir les métadonnées, y compris le Condensé de l'image.

Consultez la section Ajouter des tags à des images pour découvrir comment modifier les tags.

Projets à l'échelle du domaine

Si votre projet est à l'échelle de votre domaine, l'ID de projet comprend le nom du domaine suivi par deux points (:). En raison de la façon dont Docker traite les deux points, vous devez remplacer le caractère des deux points par une barre oblique lorsque vous spécifiez un condensé d'image dans Container Registry. Identifiez les images dans ces types de projets en utilisant le format suivant :

[HOSTNAME]/[DOMAIN]/[PROJECT]/[IMAGE]

Par exemple, le projet portant l'ID example.com:my-project pourrait avoir l'image suivante :

gcr.io/example.com/my-project/image-name

Noms de registre sous forme d'URL

Une URL de registre dans la console GCP a le format suivant : https://[HOSTNAME]/[PROJECT-ID]/[IMAGE]. N'importe quel utilisateur authentifié et autorisé à accéder au registre peut consulter ces liens. Consultez la section ci-dessus pour savoir comment construire le nom du registre.

Par exemple, les URL suivantes renvoient à des registres publics de la console GCP :

Formats d'images de conteneurs

Container Registry est compatible avec les formats d'images Docker Image Manifest V2 et OCI.

Pour en savoir plus, consultez la page Formats d'images de conteneurs.

Contrôle des accès

Container Registry stocke ses tags et ses fichiers de couches pour les images de conteneurs dans un bucket Cloud Storage situé dans le même projet que le registre. L'accès au bucket est configuré à l'aide des paramètres de gestion de l'authentification et des accès (IAM) de Cloud Storage.

Par défaut, les propriétaires et les éditeurs du projet disposent d'autorisations push et pull pour le bucket Container Registry de ce projet. Les lecteurs du projet disposent uniquement de l'autorisation pull.

Pour en savoir plus, consultez la page Configurer le contrôle des accès.

Consultez les avis d'obsolescence de Container Registry pour en savoir plus sur le projet de migration des métadonnées d'image hors de Cloud Storage, vers une base de données backend hautes performances.

Authentification

Vous pouvez utiliser la commande gcloud docker -a pour configurer l'authentification Docker avec les identifiants GCP. Container Registry est compatible avec les méthodes d'authentification avancées utilisant des jetons d'accès ou des fichiers de clés JSON.

Assistant d'identification Docker

Docker doit avoir accès à Container Registry pour pouvoir stocker et sortir des images. Vous pouvez utiliser l'outil de ligne de commande de l'assistant d'identification Docker pour configurer vos identifiants Container Registry à utiliser avec Docker.

L'assistant d'identification récupère vos identifiants Container Registry, soit automatiquement, soit à partir d'un emplacement spécifié à l'aide de son indicateur --token-source, puis les écrit dans le fichier de configuration de Docker. Ainsi, vous pouvez utiliser l'outil de ligne de commande docker pour interagir directement avec Container Registry.

Pour en savoir plus, consultez la section Authentification avancée.

Compte de service Container Registry

Lorsque vous activez l'API Container Registry, Container Registry ajoute un compte de service à votre projet. Celui-ci porte le nom suivant :

service-[PROJECT_NUMBER]@containerregistry.iam.gserviceaccount.com

Ce compte de service est spécifiquement conçu pour que Container Registry remplisse ses fonctions de service sur votre projet. Il appartient à Google, mais il est spécifique à votre projet. Il est répertorié dans les sections "Comptes de service" et "IAM" de la console GCP.

Si vous supprimez ce compte de service ou si vous modifiez ses autorisations, certaines fonctionnalités de Container Registry ne fonctionneront plus correctement. Vous ne devez pas modifier les rôles, ni supprimer le compte.

Miroir

Le registre mirror.gcr.io est un miroir global de Container Registry pour les dépôts officiels de Docker Hub.

L'utilisation du miroir permet d'accélérer les récupérations pour les dépôts Docker Hub. Lorsque vous utilisez mirror.gcr.io, votre client tente d'abord de sortir les images officielles de Docker Hub du miroir de Container Registry.

Pour en savoir plus, consultez la page Utiliser Container Registry et le miroir de Docker Hub.

Notifications

Vous pouvez utiliser Cloud Pub/Sub pour obtenir des notifications sur les modifications apportées à vos images de conteneurs.

Pour en savoir plus, consultez la page Configurer les notifications Cloud Pub/Sub.

Utiliser Container Registry avec GCP

Les instances de Compute Engine peuvent transférer et récupérer des images de Container Registry basées sur les champs d'application Cloud Storage sur les instances. Consultez la page Utiliser Container Registry avec GCP.

Les images stockées dans Container Registry peuvent être déployées dans l'environnement flexible App Engine.

Intégrations d'outils de diffusion continue

Container Registry fonctionne avec plusieurs systèmes de diffusion continue couramment utilisés.

Utiliser Container Registry avec des solutions tierces

Lorsque vous développez vos applications, vous souhaitez peut-être utiliser la gestion de clusters, l'intégration continue ou d'autres solutions tierces en dehors de GCP. Container Registry peut être intégré à ces services externes.

Ces solutions peuvent ne pas fournir d'accès à l'outil de ligne de commande gcloud pour l'authentification. Dans ce cas, vous pouvez utiliser docker login pour vous authentifier directement auprès de Container Registry. Pour en savoir plus, consultez la page Authentification avancée.

Certaines solutions tierces, telles que Kubernetes, fournissent une documentation pour l'intégration avec Container Registry.

Pour obtenir la liste complète des solutions tierces qui s'intègrent à Container Registry, consultez la page Intégrations d'outils de diffusion continue.

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Container Registry