comment nettoyer répertoire docker overlay?
Je suis en cours d'exécution docker via CoreOS et AWS ECS. J'ai eu un défaut de l'image qui a redémarré plusieurs fois, et les récipients sont toujours là - ils ont rempli mon disque partition. Plus précisément, /var/lib/docker/overlay/
contient un grand nombre de fichiers/répertoires.
Je sais que docker-nettoyage-volumes est une chose, mais il nettoie le /les volumes de répertoire, de ne pas le /la superposition de répertoire.
docker ps -a
montre plus de 250 essais de démarrage sur mon mauvais conteneur docker. Ils ne sont pas en cours d'exécution, si.
Côté de rm -rf /var/lib/docker/overlay/*
comment puis-je/dois-je nettoyer cette?
source d'informationauteur tedder42 | 2015-07-29
Vous devez vous connecter pour publier un commentaire.
Voici le hacky façon je suis en train de faire en ce moment. Je ne vais pas l'accepter comme une réponse parce que, je l'espère, il y a une meilleure façon.
Nous avons juste commencé à avoir ce problème, et btafarelo réponse m'a fait une partie du chemin, ou, au moins, m'a fait me sentir mieux à propos de la suppression de la sha256 entrées.
Système info: les instances ec2 exécutant CoreOS 1.12 derrière un ELB
Arrêt docker
Exécuter les résultats des commandes
redémarrage (moyen le plus facile de tout ramener jusqu')
Ce récupéré environ 25% du disque après que les services redémarré sans les mauvais effets secondaires.
De notre côté, nous avons utilisé:
Qui me sauver 3Go !
Nous utilisons également les fameuses commandes :
Nous mettre sur cron pour gérer un peu plus efficacement notre espace disque.
Acclamations
De référence:
https://forums.docker.com/t/some-way-to-clean-up-identify-contents-of-var-lib-docker-overlay/30604/4
J'ai ajouté ceci à bashrc dans mon environnement de dev, et est utilisé pour l'exécution de tous les jours.
Dans certains cas, le script suivant peut libérer plus d'espace, il va essayer de supprimer toutes les images, et simplement de ne pas en silence:
Malheureusement, ils ne sont pas significativement plus propre que votre solution.
EDIT: en Commençant par Docker 2017.09, vous pouvez remplacer ces deux avec juste
la dernière option, vous pouvez utiliser à la fantaisie des filtres comme
--filter "until=24h"
docker ps
--quiet
--tous les
--filter status=quitté
docker rm
docker images
docker rmi
Votre hacky façon est bien.
Mon hacky façon est
Un peu le moyen le plus propre est de courir
docker ps
avec le--quiet
(-q) drapeau, pour obtenir le numéro d'identification et--filter status=exited
--de filtrer l'a quitté.ou à exécuter
docker rm
avec le--force
(-f) drapeau etdocker ps
avec le--all
(-a) drapeau d'arrêter même l'exécution de ceuxCe qui est probablement de prendre place tous que l'espace disque après plusieurs échecs de construit est les images. Pour économiser de l'espace disque sur le panneau d'accueil, régulièrement supprimer les images docker avec
ou pour obtenir plus agressif, vous pouvez
--force
(-f) pour nettoyer--all
(-a) les images@analytik 'façon de le mettre dans un .bashrc fonction semble comme une idée pratique
et si vous avez l'habitude de générer beaucoup de docker images que vous n'avez pas besoin, ajouter à .bash_logout
Menu fixe de collecte des ordures peut être fait d'une manière simple à l'aide d'un autre conteneur docker
https://github.com/spotify/docker-gc
Vous pourriez le faire fonctionner comme un cron à l'aide de https://github.com/flaccid/docker-docker-gc-crond
Vous avez besoin d'inspecter vos images/conteneurs et supprimer les dossiers dans /opt/docker/superposition qui n'a pas été trouvé dans inspecter l'exécution
ici est la résolution pour nettoyer le panneau de superposition répertoire de https://lebkowski.name/docker-volumes/
pour Docker < 1.9 :
Ou pour Docker >=1.9 :