Gérer les images

Cette page explique comment gérer les images de conteneur dans un dépôt Docker. 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 et l'extraction d'images, consultez Transférer et extraire des images :

Avant de commencer

  1. Si le dépôt cible n'existe pas, créez un dépôt.
  2. Vérifiez que vous disposez des autorisations requises pour le dépôt.
  3. (Facultatif) Configurez des valeurs par défaut pour les commandes gcloud.

Rôles requis

Pour obtenir les autorisations nécessaires pour gérer les images, demandez à votre administrateur de vous accorder le les rôles IAM suivants dans le dépôt:

Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.

Répertorier des images

Modes de dépôt: standard, distant

Vous pouvez répertorier les images à l'aide de la console Google Cloud ou de gcloud CLI.

La liste des dépôts inclut à la fois les dépôts Artifact Registry et Container Registry. Pour travailler avec des images dans un dépôt Container Registry, consultez la documentation Container Registry pour gérer les images.

Console

Pour afficher les images d'un dépôt:

  1. Ouvrez la page Dépôts de la console Google Cloud.

    Ouvrir la page "Dépôts"

  2. Cliquez sur le dépôt contenant l'image de conteneur.

  3. Cliquez sur une image pour voir ses versions.

gcloud

Pour répertorier toutes les images dans le projet, le dépôt et l'emplacement par défaut lorsque les valeurs par défaut sont configurées :

gcloud artifacts docker images list

Pour répertorier les images d'un dépôt dans un emplacement spécifique, exécutez la commande:

gcloud artifacts docker images list LOCATION-docker.pkg.dev/PROJECT/REPOSITORY

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

gcloud artifacts docker images list LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE \
--include-tags

Remplacez les valeurs suivantes :

  • LOCATION est l'emplacement régional ou multirégional du dépôt, qui est unrégional ou multirégional, un.
  • PROJECT est votre ID de projet Google Cloud. Si l'ID de votre projet contient un deux-points (:), consultez la section Projets à l'échelle du domaine.
  • REPOSITORY est le nom du dépôt où l'image est stockée.
  • IMAGE est le nom de l'image dans le dépôt.
  • --include-tags affiche toutes les versions des images, y compris les condensés et les tags. Si cet indicateur est omis, la liste renvoyée n'inclut que des images de conteneurs de premier niveau.

Prenons l'exemple d'une image présentant les caractéristiques suivantes :

  • Emplacement du dépôt : us-west1
  • Nom du dépôt : my-repo
  • ID du projet : my-project
  • Nom de l'image : my-image

Le nom complet du dépôt est le suivant :

us-west1-docker.pkg.dev/my-project/my-repo

Le nom complet de l'image est le suivant:

us-west1-docker.pkg.dev/my-project/my-repo/my-image

Pour en savoir plus sur le format du nom d'image, consultez Noms des dépôts et des images.

Répertorier les fichiers

Modes de dépôt : standard, distant

Vous pouvez répertorier les fichiers d'un dépôt, les fichiers de toutes les versions d'un une image de conteneur ou des fichiers dans une version spécifique d'une image.

Pour toutes les commandes suivantes, vous pouvez définir un nombre maximal de fichiers à renvoyer en ajoutant l'option --limit à la commande.

Pour répertorier tous les fichiers du projet, du dépôt et lorsque les valeurs par défaut sont configurées:

gcloud artifacts files list

Pour répertorier les fichiers d'un projet, d'un dépôt et d'un emplacement spécifiés, exécutez la commande suivante :

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION

Pour lister les fichiers de toutes les versions d'une image de conteneur spécifique :

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE

Pour lister les fichiers d'une version d'image de conteneur spécifique :

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE \
    --version=VERSION
Pour répertorier les fichiers d'un tag spécifique:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE \
    --tag=TAG

Remplacez les valeurs suivantes :

  • LOCATION: le régional ou multirégional emplacement du dépôt.
  • PROJECT : ID de votre projet Google Cloud. Si l'ID de votre projet contient un deux-points (:), consultez la section Projets à l'échelle du domaine.
  • REPOSITORY: nom du dépôt dans lequel l'image sont stockées.
  • PACKAGE : nom de l'image.
  • VERSION : condensé de l'image, chaîne commençant par sha256:.
  • TAG: balise associée à l'image de conteneur.

Examples

Prenons l'exemple des informations suivantes sur une image :

  • Projet : my-project
  • Dépôt: my-repo
  • Emplacement du dépôt : us-west1
  • Image : my-app

La commande suivante permet de lister tous les fichiers du dépôt my-repo dans l'emplacement us-west1 dans le projet par défaut:

gcloud artifacts files list \
    --location=us-west1 \
    --repository=my-repo
La commande suivante liste les fichiers de la version de l'image avec le récapitulatif sha256:88b205d7995332e10e836514fbfd59ecaf8976fc15060cd66e85cdcebe7fb356.

gcloud artifacts files list \
    --project=my-project \
    --location=us-west1 \
    --repository=my-repo \
    --package=my-app \
    --version=sha256:88b205d7995332e10e836514fbfd59ecaf8976fc15060cd66e85cdcebe7fb356
La commande suivante permet de lister les fichiers de la version de l'image comportant le paramètre tag 1.0-dev

gcloud artifacts files list \
    --project=my-project \
    --location=us-west1 \
    --repository=my-repo \
    --package=my-app \
    --tag=1.0-dev

Ajouter des tags à des images

Vous pouvez ajouter des tags à des images existantes dans un dépôt Artifact Registry ou avant de les transférer vers un dépôt.

Ajouter des tags aux images d'un dépôt

Modes de dépôt : standard

Vous pouvez ajouter un tag à une image d'un dépôt Artifact Registry à l'aide de la méthode la console Google Cloud ou la ligne de commande. Dans un dépôt, les tags sont uniques d'une image. Par conséquent, si vous avez plusieurs versions d'une image, chaque tag s'applique à l'une des versions. Si vous ajoutez à une image un tag déjà utilisé, celui-ci est déplacé de la version originale vers la version nouvellement taguée.

Console

Pour ajouter un tag à une image d'un dépôt :

  1. Ouvrez la page Dépôts de la console Google Cloud.

    Ouvrir la page "Dépôts"

  2. Cliquez sur l'image pour afficher ses versions.

  3. Sélectionnez la version de l'image à taguer.

  4. Sur la ligne correspondant à la version sélectionnée, cliquez sur Autres actions (Autres actions). puis cliquez sur Modifier les tags.

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

gcloud

Pour taguer des images dans un dépôt, spécifiez la version de l'image à l'aide du condensé ou du tag de l'image, puis spécifiez le tag à ajouter. Exécutez l'une des commandes suivantes :

gcloud artifacts docker tags add IMAGE-VERSION TAG

  • IMAGE-VERSION correspond au nom complet du version d'image à laquelle ajouter des tags, à l'aide du condensé de l'image ou d'un tag existant sur la version de l'image.
  • TAG est le nom complet de la balise que à ajouter.

Prenons l'exemple d'une image présentant les caractéristiques suivantes :

  • Emplacement du dépôt : us-west1
  • Nom du dépôt : my-repo
  • ID du projet : my-project
  • Nom de l'image : my-image
  • Tag existant : iteration6-final
  • Tag à ajouter : release-candidate

Pour ajouter le tag release-candidate à la version de l'image portant le tag iteration6-final, exécutez la commande suivante :

gcloud artifacts docker tags add \
us-west1-docker.pkg.dev/my-project/my-repo/my-image:iteration6-final \
us-west1-docker.pkg.dev/my-project/my-repo/my-image:release-candidate

Pour en savoir plus sur le format du nom d'image, y compris la gestion des projets à l'échelle du domaine, consultez la section Noms de dépôts et d'images.

Ajouter des tags à des images locales

Pour transférer une image locale vers Artifact Registry, vous devez d'abord lui ajouter un tag correspondant à son nom de dépôt, puis transférer l'image. Pour obtenir des instructions, consultez la page Tranféfer et extraire.

Supprimer des tags d'images

Modes de dépôt:standard

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

Console

  1. Ouvrez la page Dépôts de la console Google Cloud.

    Ouvrir la page "Dépôts"

  2. Cliquez sur l'image pour afficher ses versions.

  3. Sélectionnez la version de l'image pour supprimer le tag.

  4. Sur la ligne de la version sélectionnée, cliquez sur Autres actions (Autres actions), puis sur Modifier les balises.

  5. Supprimez le tag, puis cliquez sur ENREGISTRER.

gcloud

Pour supprimer un tag et le supprimer de l'image, exécutez la commande suivante :

 gcloud artifacts docker tags delete LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE:TAG

  • LOCATION est le régional ou multirégional emplacement du dépôt.
  • PROJECT est votre ID de projet Google Cloud. Si l'ID de votre projet contient un deux-points (:), consultez la section Projets à l'échelle du domaine.
  • REPOSITORY est le nom du dépôt où l'image est stockée.
  • IMAGE est le nom de l'image dans le dépôt.
  • TAG est le tag de la version que vous souhaitez supprimer.

Supprimer des images

Modes de dépôt : standard, distant

Vous pouvez supprimer une image de conteneur entière ou une version d'image spécifique associée à un tag ou à un condensé.

  • Une fois une image supprimée, vous ne pouvez pas revenir en arrière.
  • La suppression d'images ne supprime pas immédiatement les calques référencés. Non référencé les calques sont supprimés quotidiennement.
  • Pour les dépôts distants, la copie mise en cache de l'image est supprimée. L'image reste disponible à partir de la source en amont. Si la télécommande reçoit une nouvelle requête pour la même image, le dépôt téléchargez-le et mettez-le en cache à nouveau.

D'autres outils sont à votre disposition pour vous aider à gérer les images inutilisées. Exemple : 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 gcloud CLI:

Console

  1. Ouvrez la page Dépôts de la console Google Cloud.

    Ouvrir la page "Dépôts"

  2. Cliquez sur le nom de l'image pour afficher les versions de cette image.

  3. Sélectionnez les versions que vous souhaitez supprimer.

  4. Cliquez sur SUPPRIMER.

  5. Dans la boîte de dialogue de confirmation, cliquez sur SUPPRIMER.

gcloud

Pour supprimer une image et tous ses tags, exécutez la commande suivante :

gcloud artifacts docker images delete LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE --delete-tags

Pour supprimer une version d'image spécifique, utilisez l'une des commandes suivantes.

gcloud artifacts docker images delete LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE:TAG [--delete-tags]

ou

gcloud artifacts docker images delete LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE@IMAGE-DIGEST [--delete-tags]

  • LOCATION est l'emplacement régional ou multirégional du dépôt.
  • PROJECT est votre ID de projet Google Cloud. Si l'ID du projet contient le signe deux-points (":"), consultez la section Projets à l'échelle du domaine.
  • REPOSITORY est le nom du dépôt où l'image est stockée.
  • IMAGE est le nom de l'image dans le dépôt.
  • TAG est le tag de la version que vous souhaitez supprimer. Si plusieurs tags sont associés à la même version d'image, vous devez inclure --delete-tags pour supprimer la version d'image sans en supprimant d'abord les tags.
  • IMAGE-DIGEST correspond à la valeur de hachage sha256 de la version que vous souhaitez supprimer. Si une balise est associée au récapitulatif de l'image, vous devez inclure --delete-tags pour supprimer la version de l'image sans supprimer la balise au préalable.
  • --delete-tags supprime tous les tags appliqués à la version de l'image. Cette option vous permet de forcer la suppression d'une version d'image dans les cas suivants:
    • Vous avez spécifié un tag, mais d'autres tags sont associés au version d'image.
    • Vous avez spécifié un condensé d'image contenant au moins une balise.

Étape suivante