Comment utiliser la commande docker buildx history rm pour supprimer les enregistrements de build

DockerDockerBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce lab, vous apprendrez à gérer les enregistrements de build (build records) en utilisant la commande docker buildx history rm. Ces enregistrements sont précieux pour suivre vos processus de construction et leurs résultats.

Vous commencerez par créer un enregistrement de build avec docker buildx build et sauvegarderez ses métadonnées. Ensuite, vous apprendrez à lister les enregistrements existants avec docker buildx ls pour en visualiser les détails. Enfin, vous pratiquerez la suppression d'enregistrements spécifiques et le nettoyage de tous les enregistrements à l'aide de la commande docker buildx history rm.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker(("Docker")) -.-> docker/DockerfileGroup(["Dockerfile"]) docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/SystemManagementGroup -.-> docker/prune("Remove Unused Docker Objects") docker/DockerfileGroup -.-> docker/build("Build Image from Dockerfile") subgraph Lab Skills docker/ls -.-> lab-555055{{"Comment utiliser la commande docker buildx history rm pour supprimer les enregistrements de build"}} docker/prune -.-> lab-555055{{"Comment utiliser la commande docker buildx history rm pour supprimer les enregistrements de build"}} docker/build -.-> lab-555055{{"Comment utiliser la commande docker buildx history rm pour supprimer les enregistrements de build"}} end

Créer un enregistrement de build (build record)

Dans cette étape, vous apprendrez à créer un enregistrement de build en utilisant la commande docker buildx build. Ces enregistrements sont utiles pour suivre les résultats de vos builds, y compris le contexte de build, les arguments de construction et l'ID de l'image résultante.

Commencez par créer un Dockerfile simple que nous utiliserons pour la construction. Accédez à votre répertoire de projet et créez un fichier nommé Dockerfile avec le contenu suivant :

FROM alpine
CMD ["echo", "Hello, Docker!"]

Ce Dockerfile est très simple. Il utilise l'image de base alpine et définit une commande pour afficher "Hello, Docker!".

Maintenant, construisons une image à partir de ce Dockerfile et créons un enregistrement de build. Nous utiliserons la commande docker buildx build avec l'option --metadata-file pour sauvegarder l'enregistrement dans un fichier.

docker buildx build . --metadata-file build-record.json -t my-hello-image

Dans cette commande :

  • docker buildx build . indique à Docker de construire une image à partir du Dockerfile dans le répertoire courant
  • --metadata-file build-record.json spécifie que l'enregistrement doit être sauvegardé dans un fichier nommé build-record.json
  • -t my-hello-image étiquette l'image résultante avec le nom my-hello-image

Après exécution de la commande, vous devriez voir un résultat indiquant le processus de build. Un fichier nommé build-record.json sera créé dans votre répertoire courant. Ce fichier contient l'enregistrement de build au format JSON.

Vous pouvez visualiser le contenu du fichier build-record.json avec la commande cat :

cat build-record.json

Cela affichera le contenu JSON de l'enregistrement de build, qui inclut des informations sur la construction.

Lister les enregistrements de build

Dans cette étape, vous apprendrez à lister les enregistrements de build existants en utilisant la commande docker buildx ls. Cette commande vous permet d'afficher la liste de tous les enregistrements de build créés.

Pour lister les enregistrements de build, exécutez simplement la commande suivante :

docker buildx ls

Cette commande affichera un tableau contenant des informations sur les enregistrements de build disponibles. Le résultat inclut généralement le nom du builder (constructeur), le pilote utilisé et son statut.

Vous devriez voir une entrée pour le builder par défaut, qui est utilisé lorsque vous exécutez docker buildx build. L'enregistrement de build que nous avons créé à l'étape précédente est associé à ce builder.

La commande docker buildx ls est utile pour obtenir une vue d'ensemble de vos environnements de build et des enregistrements associés.

Supprimer un enregistrement de build spécifique

Dans cette étape, vous apprendrez à supprimer un enregistrement de build spécifique en utilisant la commande docker buildx prune. Cette opération est utile pour nettoyer les enregistrements de build individuels dont vous n'avez plus besoin.

Pour supprimer un enregistrement de build spécifique, vous devez d'abord identifier son ID. Vous pouvez trouver l'ID de l'enregistrement dans le fichier build-record.json que nous avons créé lors de la première étape. Ouvrez le fichier avec la commande cat :

cat build-record.json

Recherchez la section "BuildRecord" dans la sortie JSON. À l'intérieur de cette section, vous trouverez un champ "ID". Copiez la valeur de cet ID - il s'agit d'une longue chaîne de caractères.

Utilisez ensuite la commande docker buildx prune avec l'option --keep-storage et l'ID de l'enregistrement pour supprimer l'entrée spécifique. Remplacez <BUILD_RECORD_ID> par l'ID que vous avez copié.

docker buildx prune --keep-storage <BUILD_RECORD_ID>

L'option --keep-storage est utilisée ici pour indiquer que nous supprimons des enregistrements de build, pas le cache de build.

Après exécution de la commande, vous devriez voir une confirmation indiquant que l'enregistrement a été supprimé.

Pour vérifier que l'enregistrement a bien été supprimé, vous pouvez lister à nouveau les enregistrements :

docker buildx ls

L'enregistrement spécifique que vous avez supprimé ne devrait plus apparaître dans la liste.

Supprimer tous les enregistrements de build

Dans cette étape, vous apprendrez à supprimer tous les enregistrements de build en utilisant la commande docker buildx prune avec l'option --all. Cette méthode permet de nettoyer efficacement tous les enregistrements en une seule opération.

Pour supprimer tous les enregistrements de build, exécutez la commande suivante :

docker buildx prune --all --keep-storage --force

Dans cette commande :

  • docker buildx prune est la commande pour supprimer les données liées aux builds
  • --all spécifie que tous les enregistrements de build doivent être supprimés
  • --keep-storage indique que nous supprimons uniquement les enregistrements de build, pas le cache de build
  • --force contourne la demande de confirmation, utile pour les scripts ou dans les environnements sans interaction possible

Après exécution de la commande, vous devriez voir une confirmation indiquant que les enregistrements ont été supprimés.

Pour vérifier que tous les enregistrements ont bien été supprimés, vous pouvez lister à nouveau les enregistrements :

docker buildx ls

Vous ne devriez maintenant voir que l'entrée du builder par défaut, sans aucun enregistrement de build spécifique listé.

Ceci conclut le lab sur la gestion des enregistrements de build Docker. Vous avez appris à créer, lister et supprimer des enregistrements de build.

Résumé

Dans ce lab, vous avez appris à gérer les enregistrements de build Docker en utilisant docker buildx. Vous avez commencé par créer un simple Dockerfile, puis utilisé docker buildx build avec l'option --metadata-file pour construire une image et générer un enregistrement de build, sauvegardé dans un fichier JSON. Vous avez ensuite appris à lister les enregistrements existants en utilisant la commande docker buildx ls pour visualiser les informations sur vos builds.

Ce lab a également couvert comment supprimer des enregistrements spécifiques avec docker buildx history rm <record_id> et comment supprimer tous les enregistrements en une seule opération avec docker buildx history rm --all. Ces étapes démontrent la gestion du cycle de vie des enregistrements de build dans Docker Buildx.