Éliminer le cache de construction orphelin (dangling build cache)
Dans cette étape, nous apprendrons à éliminer le cache de construction orphelin. Le cache de construction orphelin fait référence aux couches de cache de construction qui ne sont plus associées à aucune image nommée. Cela peut se produire lorsque vous reconstruisez une image et qu'une couche précédente est remplacée par une nouvelle. L'élimination du cache orphelin peut aider à libérer de l'espace disque.
Tout d'abord, modifions légèrement notre Dockerfile.cache
pour créer un peu de cache orphelin. Nous allons changer l'instruction RUN
.
Accédez au répertoire ~/project
si vous n'y êtes pas déjà.
cd ~/project
Ouvrez le fichier Dockerfile.cache
pour l'éditer.
nano Dockerfile.cache
Changez l'instruction RUN
de :
RUN apt-get update && apt-get install -y --no-install-recommends curl
en :
RUN apt-get update && apt-get install -y --no-install-recommends wget
Enregistrez le fichier et quittez l'éditeur nano (Appuyez sur Ctrl + X
, puis Y
, puis Entrée
).
Maintenant, reconstruisons l'image avec la même étiquette (tag).
docker build -t myimage:cachetest -f Dockerfile.cache .
Observez la sortie. Docker réutilisera probablement la couche FROM
depuis le cache, mais l'instruction RUN
a changé, donc il exécutera cette étape à nouveau, créant une nouvelle couche. La couche précédente créée par l'ancienne instruction RUN
est maintenant un cache de construction orphelin car elle ne fait plus partie de l'image myimage:cachetest
.
Pour voir le cache de construction, vous pouvez utiliser la commande docker builder prune --dry-run
, bien que ce ne soit pas toujours facile de distinguer spécifiquement le cache orphelin sans des outils plus avancés ou une bonne compréhension de la sortie de BuildKit. Une façon plus simple de voir l'effet est d'éliminer le cache orphelin et de voir l'espace récupéré.
Pour éliminer uniquement le cache de construction orphelin, nous utilisons la commande docker builder prune
avec l'option --filter dangling=true
.
docker builder prune --filter dangling=true
Vous serez invité à confirmer l'action. Tapez y
et appuyez sur Entrée
.
WARNING! This will remove all dangling build cache.
Are you sure you want to continue? [y/N] y
La sortie montrera la quantité d'espace récupéré. Cet espace était occupé par les couches de cache de construction orphelines qui n'étaient plus nécessaires.
En éliminant le cache de construction orphelin, vous pouvez récupérer de l'espace disque qui n'est plus utilisé par aucune couche d'image active.