Je peux voir que Docker prend 12 Go de mon système de fichiers:
2.7G /var/lib/docker/vfs/dir
2.7G /var/lib/docker/vfs
2.8G /var/lib/docker/devicemapper/mnt
6.3G /var/lib/docker/devicemapper/devicemapper
9.1G /var/lib/docker/devicemapper
12G /var/lib/docker
Mais, comment puis-je savoir comment cela est réparti sur les conteneurs?
J'ai essayé de m'attacher aux conteneurs en exécutant (la nouvelle commande v1.3)
docker exec -it <container_name> bash
puis exécutez «df -h» pour analyser l'utilisation du disque. Il semble fonctionner, mais pas avec des conteneurs qui utilisent des «volumes-from».
Par exemple, j'utilise un conteneur de données uniquement pour MongoDB, appelé «mongo-data».
Lorsque je cours docker run -it --volumes-from mongo-data busybox
, puis df -h
à l'intérieur du conteneur, il est dit que le système de fichiers monté /data/db
(mon conteneur de données 'mongo-data') utilise 11.3G, mais quand je le fais du -h /data/db
, il dit qu'il n'utilise que 2.1G.
Alors, comment puis-je analyser l'utilisation d'un disque conteneur / volume? Ou, dans mon cas, comment connaître la taille du conteneur «mongo-data»?
la source
docker-squash
utilitaire de Jason Wilder . Obtenez-le sur GitHub ici: github.com/jwilder/docker-squashRéponses:
Pour voir la taille de fichier de vos conteneurs, vous pouvez utiliser l'
--size
argument dedocker ps
:la source
docker ps -s
ne prend pas en compte les journaux conservés dans / var / lib / docker /.27.2MB (virtual 173MB)
quelle est la différence entre elles?Après 1.13.0, Docker inclut une nouvelle commande
docker system df
pour afficher l'utilisation du disque Docker .Pour afficher des informations plus détaillées sur l'utilisation de l'espace:
la source
docker system df --verbose > docker.stats-2019-07-18.log
Publier ceci comme réponse parce que mes commentaires ci-dessus se sont cachés:
Indiquez la taille d'un conteneur:
Énumérez les tailles des volumes d'un conteneur:
Modifier: répertoriez toutes les tailles et volumes des conteneurs en cours d'exécution:
REMARQUE: modifiez «devicemapper» en fonction de votre système de fichiers Docker (par exemple, «aufs»)
la source
/var/lib/docker/devicemapper: No such file or directory
. Une idée où le devicemapper est stocké sur mac?du
commande dans votre machine virtuelle hôte boot2docker. La commande peut également échouer si vous utilisezaufs
au lieu du mappeur de périphériques.La partie volume ne fonctionnait plus, donc si quelqu'un est intéressé, je change juste un peu le script ci-dessus:
la source
(cette réponse n'est pas utile, mais laissez-la ici car certains commentaires peuvent l'être)
docker images
montrera la «taille virtuelle», c'est-à-dire combien au total, y compris toutes les couches inférieures. Donc, un double comptage si vous avez des conteneurs qui partagent la même image de base.Documentation
la source
J'utilise
docker stats $(docker ps --format={{.Names}}) --no-stream
pour obtenir:la source
Vous pouvez utiliser
pour voir comment la taille de l'image est répartie entre ses différents sous-composants.
la source
Gardez à l'esprit que cette commande
docker ps --size
peut être coûteuse et prendre plus de quelques minutes. Il en va de même pour les demandes d'API de liste de conteneurs avecsize=1
. Il vaut mieux ne pas l'exécuter trop souvent.Jetez un œil aux alternatives que nous avons compilées, y compris l'
du -hs
option pour le répertoire de volume persistant du docker.la source
Améliorer la réponse de Maxime:
docker ps --size
Vous verrez quelque chose comme ceci:
Lors du démarrage d'un conteneur, l'image à partir de laquelle le conteneur est démarré est montée en lecture seule (virtuelle) .
En plus de cela, une couche inscriptible est montée, dans laquelle toutes les modifications apportées au conteneur sont écrites.
Ainsi, la taille virtuelle (183 Mo dans l'exemple) n'est utilisée qu'une seule fois, quel que soit le nombre de conteneurs démarrés à partir de la même image - je peux démarrer 1 conteneur ou mille; aucun espace disque supplémentaire n'est utilisé .
La "taille" (2B dans l'exemple) est cependant unique par conteneur, donc l'espace total utilisé sur le disque est:
183 Mo + 5B + 2B
N'oubliez pas que la taille indiquée n'inclut pas tout l'espace disque utilisé pour un conteneur.
Les choses qui ne sont pas incluses actuellement sont;
- volumes
- permutation
- points de contrôle
- espace disque utilisé pour les fichiers journaux générés par le conteneur
https://github.com/docker/docker.github.io/issues/1520#issuecomment-305179362
la source