Gérer les images

La gestion des images comprend l'établissement de la liste des images dans un dépôt, l'ajout de tags, la suppression de tags, la copie d'images dans un nouveau dépôt et la suppression d'images.

Pour en savoir plus sur le transfert d'une image locale vers Container Registry ou l'extraction d'une image stockée dans Container Registry, consultez la section Transférer et extraire des images.

Avant de commencer

Assurez-vous que les conditions suivantes sont remplies :

  1. Vous avez activé Container Registry dans votre projet.

  2. Vous avez installé Docker.

  3. Vous avez configuré Docker pour s'authentifier auprès du registre.

  4. Vous disposez des autorisations pour accéder au registre.

Répertorier des images selon leur emplacement de stockage

Vous pouvez répertorier les images dans des emplacements d'hôte spécifiques à l'aide de la console Google Cloud ou de la ligne de commande.

Console

Pour répertorier les images dans l'un de vos emplacements d'hôte :

  1. Accédez à la page Container Registry.

    Ouvrir la page Container Registry.

  2. Utilisez le sélecteur au-dessus de Nom pour choisir l'emplacement d'hôte. Les options incluent Tous les emplacements et les noms d'hôte actuellement utilisés par le projet, qui peuvent inclure gcr.io, us.gcr.io, eu.gcr.io ou asia.gcr.io.

gcloud

Pour répertorier les images qui se trouvent dans l'un de vos emplacements d'hôte, utilisez la commande suivante :

gcloud container images list --repository=[HOSTNAME]/[PROJECT-ID]

où :

  • [HOSTNAME] est répertorié sous Location dans la console. Il s'agit de l'une des quatre options suivantes : gcr.io, us.gcr.io, eu.gcr.io ou asia.gcr.io.
  • [PROJECT-ID] est l'ID du projet dans la console Google Cloud. Si l'ID du projet contient le signe deux-points (:), consultez la section Projets à l'échelle du domaine.

Si vous disposez de registres imbriqués, répertoriez les images imbriquées en spécifiant le niveau du dépôt où elles sont stockées :

gcloud container images list --repository=[HOSTNAME]/[PROJECT-ID]/[IMAGE]

[IMAGE] est le dépôt contenant des images imbriquées.

Consultez également la documentation sur gcloud container images list.

Répertorier les versions d'une image

Un registre peut contenir différentes versions d'une image. Ces versions possèdent le même nom d'image et sont identifiées par leur condensé et par leurs tags.

Console

Pour voir le condensé et les tags d'une image :

  1. Accédez à la page Container Registry.

    Ouvrir la page Container Registry.

  2. Cliquez sur le nom de l'image pour afficher les versions de cette image. Le condensé tronqué est répertorié sous Nom et les tags sont répertoriés sous Tags.

  3. Pour obtenir le condensé complet, cliquez sur la version de l'image pour voir ses métadonnées. Le condensé s'appelle Condensé de l'image.

gcloud

Pour répertorier les condensés tronqués et les tags d'une image, exécutez la commande suivante :

gcloud container images list-tags [HOSTNAME]/[PROJECT-ID]/[IMAGE]

où :

  • [HOSTNAME] est répertorié sous Location dans la console. Il s'agit de l'une des quatre options suivantes : gcr.io, us.gcr.io, eu.gcr.io ou asia.gcr.io.
  • [PROJECT-ID] est l'ID du projet dans la console Google Cloud. Si l'ID du projet contient le signe deux-points (:), consultez la section Projets à l'échelle du domaine.
  • [IMAGE] est le nom de l'image dans Container Registry.

Pour répertorier le condensé complet de la ou des versions d'une image spécifique, exécutez la commande suivante :

gcloud container images list-tags --format='get(digest)' [HOSTNAME]/[PROJECT-ID]/[IMAGE]

Consultez la documentation sur gcloud container images list-tags.

Ajouter des tags à des images

Vous pouvez ajouter un tag à une image à l'aide de la console Google Cloud ou de la ligne de commande.

Un condensé est un identifiant unique généré automatiquement pour une version d'image. Un tag agit comme un libellé que vous pouvez appliquer à une version d'image spécifique.

Vous pouvez ajouter plusieurs tags à une image. Dans un dépôt, chaque tag d'une image doit être unique. Par exemple, si vous ajoutez le tag release-candidate à la neuvième version de l'image, l'ajout de ce même tag à la dixième version déplacera le tag de la neuvième version vers la dixième version.

Si vous n'ajoutez pas de tags à une image, le client Docker ajoute le tag par défaut latest. Cela signifie que le tag latest n'indique pas la version la plus récente d'une image. Il correspond, en réalité, à une version d'image que vous avez spécifiquement taguée comme latest ou à la dernière version non taguée d'une image. Étant donné que la signification de latest n'est pas claire, nous vous recommandons d'éviter de vous fier au tag latest.

Console

Pour ajouter un tag à une image hébergée dans Container Registry :

  1. Accédez à la page Container Registry.

    Ouvrir la page Container Registry.

  2. Cliquez sur le nom de l'image pour afficher la version de cette image.

  3. Sous Tags, cliquez sur l'icône de modification.

  4. Saisissez de nouveaux tags dans le champ, puis cliquez sur ENREGISTRER.

gcloud

Pour ajouter des tags à des images hébergées dans Container Registry, exécutez la commande gcloud container images add-tag :

gcloud container images add-tag \
[HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG] \
[HOSTNAME]/[PROJECT-ID]/[IMAGE]:[NEW_TAG]

ou

gcloud container images add-tag \
[HOSTNAME]/[PROJECT-ID]/[IMAGE]@[IMAGE_DIGEST] \
[HOSTNAME]/[PROJECT-ID]/[IMAGE]:[NEW_TAG]

où :

  • [HOSTNAME] est répertorié sous Location dans la console. Il s'agit de l'une des quatre options suivantes : gcr.io, us.gcr.io, eu.gcr.io ou asia.gcr.io.
  • [PROJECT-ID] est l'ID du projet dans la console Google Cloud. Si l'ID du projet contient le signe deux-points (:), consultez la section Projets à l'échelle du domaine.
  • [IMAGE] est le nom de l'image dans Container Registry.
  • [TAG] est un tag déjà appliqué à l'image.
  • [IMAGE_DIGEST] est la valeur de hachage sha256 du contenu de l'image.
  • [NEW_TAG] est le nouveau tag que vous ajoutez à l'image.

Consultez la documentation sur gcloud container images add-tag pour en savoir plus sur cette commande.

Ajouter des tags à des images locales pour les héberger dans Container Registry

Pour transférer une image locale vers Container Registry, vous devez d'abord lui ajouter un tag correspondant au nom du registre, puis transférer l'image. Pour obtenir des instructions, consultez la section Transférer une image dans un registre.

Supprimer des tags d'images

Vous pouvez supprimer un tag d'une image dans Container Registry à l'aide de la console Google Cloud ou de la ligne de commande.

Console

  1. Accédez à la page Container Registry.

    Ouvrir la page Container Registry.

  2. Cliquez sur le nom de l'image pour afficher la version de cette image.

  3. Sous Tags, cliquez sur l'icône de modification.

  4. Supprimez le tag, puis cliquez sur ENREGISTRER.

gcloud

Pour supprimer un tag d'une image, utilisez la commande suivante :

gcloud container images untag [HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG]

où :

  • [HOSTNAME] est répertorié sous Location dans la console. Il s'agit de l'une des quatre options suivantes : gcr.io, us.gcr.io, eu.gcr.io ou asia.gcr.io.
  • [PROJECT-ID] est l'ID du projet dans la console Google Cloud. Si l'ID du projet contient le signe deux-points (:), consultez la section Projets à l'échelle du domaine.
  • [IMAGE] est le nom de l'image dans Container Registry.
  • [TAG] est le tag que vous souhaitez supprimer.

    Consultez la documentation sur gcloud container images untag pour en savoir plus sur cette commande.

Copier des images dans un nouveau registre

Vous pouvez copier une image d'un dépôt vers un autre à l'aide de la ligne de commande. Vous devez avoir accès aux deux dépôts.

Pour copier une image d'un dépôt vers un autre, exécutez la commande gcloud container images add-tag et identifiez l'image à déplacer à l'aide de son tag :

gcloud container images add-tag \
[SOURCE_HOSTNAME]/[SOURCE_PROJECT-ID]/[SOURCE_IMAGE]:[SOURCE_TAG] \
[DESTINATION_HOSTNAME]/[DESTINATION_PROJECT-ID]/[DESTINATION_IMAGE]:[DESTINATION_TAG]

ou de son condensé :

gcloud container images add-tag \
[SOURCE_HOSTNAME]/[SOURCE_PROJECT-ID]/[SOURCE_IMAGE]@[IMAGE_DIGEST] \
[DESTINATION_HOSTNAME]/[DESTINATION_PROJECT-ID]/[DESTINATION_IMAGE]:[DESTINATION_TAG]

où, pour la source et la destination :

  • [HOSTNAME] est l'emplacement où l'image est hébergée et correspond à l'une des quatre options suivantes : gcr.io, us.gcr.io, eu.gcr.io ou asia.gcr.io.
  • [PROJECT-ID] est l'ID du projet dans la console Google Cloud. Si l'ID du projet contient le signe deux-points (:), consultez la section Projets à l'échelle du domaine.
  • [IMAGE] est le nom de l'image dans Container Registry.
  • [IMAGE_DIGEST] est la valeur de hachage sha256 du contenu de l'image.
  • [TAG] est le tag qui identifie l'image source à déplacer ou le tag à appliquer à l'image dans le dépôt de destination.

Par exemple, si vous souhaitez copier l'image my-image dans le dépôt d'un autre projet et dans l'hôte européen, mais que vous souhaitez conserver le nom de l'image et lui attribuer le même tag, utilisez :

gcloud container images add-tag \
gcr.io/[PROJECT-ID]/my-image:tag1 \
eu.gcr.io/[OTHER-PROJECT-ID]/my-image:tag1

[PROJECT-ID] et [OTHER-PROJECT-ID] sont les ID des projets de la console Google Cloud correspondant au projet à partir duquel vous effectuez la copie et à celui dans lequel vous effectuez la copie. Vous devez avoir accès aux dépôts de ces deux projets. Si l'un de vos ID de projet contient le signe deux-points (:), consultez la section Projets à l'échelle du domaine.

Consultez la documentation sur gcloud container images add-tag pour en savoir plus sur cette commande.

Supprimer des images

Vous pouvez supprimer une image à l'aide de la console Google Cloud ou de la ligne de commande. La suppression d'une image est irréversible.

D'autres outils sont à votre disposition pour vous aider à gérer les images inutilisées. Par exemple, l'outil gcr-cleaner recherche et supprime les anciennes images en fonction de différents critères. La suppression d'images inutilisées peut vous aider à réduire les coûts de stockage. L'outil gcr-cleaner n'est pas un produit Google officiel.

Pour supprimer une image de la console Google Cloud ou de la gcloud CLI:

Console

  1. Accédez à la page Container Registry.

    Ouvrir la page Container Registry.

  2. Cliquez sur le nom de l'image pour voir la ou les version(s) de cette image.

  3. Dans le registre, cochez la case à côté des versions de l'image que vous souhaitez supprimer.

  4. Cliquez sur SUPPRIMER en haut de la page.

  5. Dans la fenêtre Supprimer les éléments du dépôt, cliquez sur SUPPRIMER.

gcloud

Exécutez l'une des commandes suivantes :

  • Pour une image identifiée par son condensé :

    gcloud container images delete [HOSTNAME]/[PROJECT-ID]/[IMAGE]@[IMAGE_DIGEST]
    
  • Pour une image identifiée par son tag, et qui possède plusieurs tags :

    gcloud container images delete [HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG] --force-delete-tags
    

où :

  • [HOSTNAME] est répertorié sous Location dans la console. Il s'agit de l'une des quatre options suivantes : gcr.io, us.gcr.io, eu.gcr.io ou asia.gcr.io.
  • [PROJECT-ID] est l'ID du projet dans la console Google Cloud. Si l'ID du projet contient le signe deux-points (:), consultez la section Projets à l'échelle du domaine.
  • [IMAGE] est le nom de l'image dans Container Registry.
  • [IMAGE_DIGEST] est la valeur de hachage sha256 du contenu de l'image.
  • [TAG] est le tag de l'image que vous souhaitez supprimer.

Consultez la documentation sur gcloud container images delete pour en savoir plus sur cette commande.

Étapes suivantes