Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
technique:docker:admin:nettoyer_docker [2020/10/14 13:16] – [Recherche d'un stockage inhabituel] qduchemi | technique:docker:admin:nettoyer_docker [2022/10/29 12:02] (Version actuelle) – qduchemi | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{indexmenu_n> | ||
+ | # Libérer de l' | ||
+ | Il peut arriver que l' | ||
+ | |||
+ | < | ||
+ | |||
+ | < | ||
+ | |||
+ | La partition montée sur `/ | ||
+ | |||
+ | Quand le volume monté sur `/ | ||
+ | - Supprimer les données non utilisées, | ||
+ | - Allouer plus d' | ||
+ | - Augmenter la taille des disques de la machine virtuelle. | ||
+ | |||
+ | ## Nettoyage des données non-utilisées | ||
+ | |||
+ | < | ||
+ | |||
+ | Au fil des mises à jour, il y a du stockage pris par Docker qui n'est plus utilisé. | ||
+ | |||
+ | < | ||
+ | |||
+ | * Les images qui ont été récupérées mais ne sont plus utilisées (*e.g.* ancienne version), les images dites *dangling* (anciens *layers* d'un tag qui ont été écrasées par une nouvelle version du même tag). | ||
+ | * Les conteneurs éteints mais pas supprimés, qui consomment du stockage si des modifications ont été apportées aux images de base. | ||
+ | * Les volumes Docker qui ne correspondent plus à aucun conteneur. | ||
+ | * Les réseaux Docker utilisés par aucun conteneur. | ||
+ | * Le cache des images. | ||
+ | |||
+ | On peut obtenir une estimation de l' | ||
+ | |||
+ | ```bash | ||
+ | docker system df | ||
+ | ``` | ||
+ | |||
+ | Afin de supprimer l' | ||
+ | |||
+ | < | ||
+ | ``` | ||
+ | docker ps --filter " | ||
+ | ``` | ||
+ | On peut utiliser le [[technique: | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | |||
+ | ```bash | ||
+ | docker system prune | ||
+ | ``` | ||
+ | |||
+ | Inspectez le résultat de la commande et vérifiez que ce qui a été supprimé n' | ||
+ | |||
+ | ```bash | ||
+ | docker volume prune -a | ||
+ | ``` | ||
+ | |||
+ | Il faut aussi rajouter une commande pour supprimer toutes les images non-associées à un conteneur : | ||
+ | |||
+ | ```bash | ||
+ | docker image prune -a | ||
+ | ``` | ||
+ | |||
+ | ## Recherche d'un stockage inhabituel | ||
+ | |||
+ | ### Première tentative | ||
+ | |||
+ | Si le stockage récupéré n'est pas suffisant, on peut regarder si un conteneur n' | ||
+ | |||
+ | La commande suivante permet de lister le stockage utilisé par chaque conteneur, image et volume : | ||
+ | |||
+ | ```bash | ||
+ | docker system df -v | ||
+ | ``` | ||
+ | |||
+ | Ensuite, on traite au cas par cas. On peut par exemple découvrir des services qui tournent alors qu'ils n'ont plus rien à faire là (dans ce cas on les éteindra et on relancera un `prune`), ou des conteneurs qui prennent trop de place (par exemple, parce qu'ils loggent dans un fichier en mode `DEBUG`). | ||
+ | |||
+ | De manière générale, un conteneur ne devrait jamais utiliser plus Go d' | ||
+ | |||
+ | < | ||
+ | |||
+ | ### Recherche supplémentaire | ||
+ | |||
+ | < | ||
+ | |||
+ | Franchement, | ||
+ | |||
+ | < | ||
+ | |||
+ | < | ||
+ | |||
+ | On cherche donc à savoir ce qui prend le plus de place : | ||
+ | |||
+ | ```bash | ||
+ | du -sh / | ||
+ | ``` | ||
+ | |||
+ | On voit ainsi quels sont les éléments qui occupent le plus de place en mémoire, par exemple : | ||
+ | |||
+ | * `volumes` pour le contenu persistant des conteneurs (bases de données par exemple) | ||
+ | * `overlay2` pour les conteneurs | ||
+ | |||
+ | Une fois que l'on a déterminé le dossier qui prend le plus de place, | ||
+ | |||
+ | On peut regarder par exemple quels sont les dix plus gros fichiers les plus gros dans `/ | ||
+ | ``` | ||
+ | du -sh / | ||
+ | ``` | ||
+ | |||
+ | Mais cette commande ne nous donne pas d' | ||
+ | |||
+ | |||
+ | ``` | ||
+ | for overlayID in $(du -sh / | ||
+ | ``` | ||
+ | |||
+ | On peut utiliser des commandes similaires pour les volumes. | ||
+ | |||
+ | < | ||
+ | |||
+ | ## Augmenter l' | ||
+ | |||
+ | Si aucune des solutions précédentes n'a fonctionné et que Docker a réellement besoin de plus de place, on suivra la [[technique: |