Cette page explique comment gérer les images de conteneurs 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 la page Transférer et extraire des images.
Avant de commencer
- Si le dépôt cible n'existe pas, créez un dépôt.
- Vérifiez que vous disposez des autorisations requises pour le dépôt.
- (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 attribuer les rôles IAM suivants sur le dépôt:
-
Affichez les images, les fichiers dans les images et les tags : Lecteur Artifact Registry (
roles/artifactregistry.reader
) -
Ajouter des tags aux images ou modifier les tags à l'aide d'Artifact Registry :
Artifact Registry Writer (
roles/artifactregistry.writer
) -
Supprimez des images ou des tags :
Administrateur de dépôt Artifact Registry (
roles/artifactregistry.repoAdmin
)
Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.
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 utiliser des images hébergées dans un dépôt Container Registry, consultez la documentation de Container Registry sur la gestion des images.Console
Pour afficher les images d'un dépôt:
Ouvrez la page Dépôts de la console Google Cloud.
Cliquez sur le dépôt contenant l'image de conteneur.
Cliquez sur une image pour afficher ses versions.
gcloud
Pour répertorier toutes les images du projet, du dépôt et de l'emplacement par défaut lorsque les valeurs par défaut sont configurées, procédez comme suit:
gcloud artifacts docker images list
Pour répertorier les images d'un dépôt à un emplacement spécifique, exécutez la commande suivante:
gcloud artifacts docker images list LOCATION-docker.pkg.dev/PROJECT/REPOSITORY
Pour répertorier tous les condensés et tous les 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' régional ou multirégional emplacement du dépôt.
- PROJECT est l'ID du projet Google Cloud. Si l'ID de votre 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.
--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 les images de conteneur de niveau supérieur.
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:
us-west1-docker.pkg.dev/my-project/my-repo
Le nom complet de l'image est:
us-west1-docker.pkg.dev/my-project/my-repo/my-image
Pour en savoir plus sur le format du nom d'image, consultez Noms de dépôts et d'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'une image de conteneur spécifiée ou les fichiers d'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 de l'emplacement par défaut lorsque les valeurs par défaut sont configurées:
gcloud artifacts files list
Pour répertorier les fichiers dans un projet, un dépôt et un emplacement spécifiés, exécutez la commande suivante:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION
Pour répertorier 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 répertorier les fichiers d'une version spécifique de l'image de conteneur, procédez comme suit:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE \
--version=VERSION
Pour répertorier les fichiers d'une balise spécifique:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE \
--tag=TAG
Remplacez les valeurs suivantes :
LOCATION
: régional ou multirégional emplacement du dépôt.PROJECT
: ID de votre projet Google Cloud. Si l'ID de votre projet contient le signe deux-points (":"), consultez la section Projets à l'échelle du domaine.REPOSITORY
: nom du dépôt dans lequel l'image est stockée.PACKAGE
: nom de l'image.VERSION
: condensé de l'image, une chaîne commençant parsha256:
.TAG
: tag associé à l'image du conteneur.
Examples
Examinez les informations suivantes sur l'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
à l'emplacement us-west1
dans le projet par défaut:
gcloud artifacts files list \
--location=us-west1 \
--repository=my-repo
La commande suivante répertorie les fichiers de la version de l'image avec le condensé sha256:88b205d7995332e10e836514fbfd59ecaf8976fc15060cd66e85cdcebe7fb356
.
gcloud artifacts files list \
--project=my-project \
--location=us-west1 \
--repository=my-repo \
--package=my-app \
--version=sha256:88b205d7995332e10e836514fbfd59ecaf8976fc15060cd66e85cdcebe7fb356
La commande suivante répertorie les fichiers de la version de l'image portant le 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 taguer les images existantes d'un dépôt Artifact Registry ou les taguer 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 console Google Cloud ou de la ligne de commande. Dans un dépôt, les tags sont uniques pour chaque version d'une image. Ainsi, si vous disposez de plusieurs versions d'une image, chaque tag ne s'applique qu'à une seule version. Si vous taguez une image avec un tag déjà utilisé, vous le déplacez de la version d'origine vers la version nouvellement taguée.
Console
Pour ajouter un tag à une image dans un dépôt, procédez comme suit:
Ouvrez la page Dépôts de la console Google Cloud.
Cliquez sur l'image pour afficher ses versions.
Sélectionnez la version de l'image à laquelle vous souhaitez ajouter un tag.
Sur la ligne de la version sélectionnée, cliquez sur Autres actions (), puis sur Modifier les balises.
Saisissez de nouveaux tags dans le champ, puis cliquez sur ENREGISTRER.
gcloud
Pour ajouter des tags aux images d'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
Où
- IMAGE-VERSION est le nom complet de la version d'image à laquelle ajouter un tag, à l'aide du condensé de l'image ou d'un tag existant dans la version d'image.
- TAG est le nom complet du tag que vous souhaitez 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 sur 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 console Google Cloud ou de la ligne de commande.
Console
Ouvrez la page Dépôts de la console Google Cloud.
Cliquez sur l'image pour afficher ses versions.
Sélectionnez la version de l'image pour supprimer le tag.
Sur la ligne de la version sélectionnée, cliquez sur Autres actions (), puis sur Modifier les balises.
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
Où
- LOCATION est l' régional ou multirégional emplacement du dépôt.
- PROJECT est l'ID du projet Google Cloud. Si l'ID de votre 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 la balise de la version que vous souhaitez supprimer.
Supprimer des images
Modes de dépôt: standard, distant
Vous pouvez supprimer une image de conteneur complète ou supprimer une version d'image spécifique associée à un tag ou à un condensé.
- La suppression d'une image est irréversible.
- La suppression d'images ne supprime pas immédiatement les couches référencées. Les calques non référencés 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 depuis la source en amont. Si le dépôt distant reçoit une nouvelle requête pour la même image, il la télécharge et la met à nouveau en cache.
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
Ouvrez la page Dépôts de la console Google Cloud.
Cliquez sur le nom de l'image pour afficher les versions de cette image.
Sélectionnez les versions que vous souhaitez supprimer.
Cliquez sur SUPPRIMER.
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]
Où
- LOCATION est l' régional ou multirégional emplacement du dépôt.
- PROJECT est l'ID du projet Google Cloud. Si l'ID de votre 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 la balise 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 de l'image sans supprimer les tags au préalable. - IMAGE-DIGEST correspond à la valeur de hachage sha256 de la version que vous souhaitez supprimer. Si un tag est associé au condensé de l'image, vous devez inclure
--delete-tags
pour supprimer la version de l'image sans supprimer le tag 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é une balise, mais d'autres balises sont associées à la version de l'image.
- Vous avez spécifié un condensé d'image comportant au moins un tag.
Étapes suivantes
- Téléchargez des fichiers individuels stockés dans une image sans utiliser les commandes Docker. Cela peut être utile pour inspecter rapidement les fichiers manifestes.