Puedo ver que Docker toma 12 GB de mi sistema de archivos:
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
Pero, ¿cómo sé cómo se distribuye esto en los contenedores?
Traté de conectar a los contenedores ejecutando (el nuevo comando v1.3)
docker exec -it <container_name> bash
y luego ejecuta 'df -h' para analizar el uso del disco. Parece estar funcionando, pero no con contenedores que usan 'volume-from'.
Por ejemplo, uso un contenedor de solo datos para MongoDB, llamado 'mongo-data'.
Cuando ejecuto docker run -it --volumes-from mongo-data busybox
, y luego df -h
dentro del contenedor, dice que el sistema de archivos montado en /data/db
(mi contenedor de datos 'mongo-data') usa 11.3G, pero cuando lo hago du -h /data/db
, dice que usa solo 2.1G.
Entonces, ¿cómo analizo el uso de un contenedor / volumen de disco? O, en mi caso, ¿cómo puedo averiguar el tamaño del contenedor 'mongo-data'?
fuente
docker-squash
utilidad de Jason Wilder . Consíguelo en GitHub aquí: github.com/jwilder/docker-squashRespuestas:
Para ver el tamaño del archivo de sus contenedores, puede usar el
--size
argumento dedocker ps
:fuente
docker ps -s
no tiene en cuenta los registros guardados dentro de / var / lib / docker /.27.2MB (virtual 173MB)
¿cuál es la diferencia entre ellos?Después de 1.13.0, Docker incluye un nuevo comando
docker system df
para mostrar el uso del disco docker.Para mostrar información más detallada sobre el uso del espacio:
fuente
docker system df --verbose > docker.stats-2019-07-18.log
Publicando esto como respuesta porque mis comentarios anteriores se ocultaron:
Liste el tamaño de un contenedor:
Liste los tamaños de los volúmenes de un contenedor:
Editar: enumere todos los tamaños y volúmenes de contenedores en ejecución:
NOTA: Cambie 'devicemapper' de acuerdo con su sistema de archivos Docker (por ejemplo, 'aufs')
fuente
/var/lib/docker/devicemapper: No such file or directory
. ¿Alguna idea de dónde está guardado el dispositivo en Mac?du
comando dentro de su máquina virtual host host boot2docker. El comando también puede fallar si está utilizando elaufs
mapeador de dispositivos.La parte del volumen ya no funcionaba, así que si alguien está interesado, solo cambio un poco el script anterior:
fuente
(esta respuesta no es útil, pero la dejo aquí ya que algunos de los comentarios pueden serlo)
docker images
mostrará el "tamaño virtual", es decir, la cantidad total que incluye todas las capas inferiores. Entonces, cuente dos veces si tiene contenedores que comparten la misma imagen base.documentación
fuente
Yo uso
docker stats $(docker ps --format={{.Names}}) --no-stream
para obtener:fuente
Puedes usar
para ver cómo se distribuye el tamaño de la imagen entre sus diversos subcomponentes.
fuente
Tenga en cuenta que
docker ps --size
puede ser un comando costoso, que demora más de unos minutos en completarse. Lo mismo se aplica a las solicitudes de API de lista de contenedores consize=1
. Es mejor no ejecutarlo con demasiada frecuencia.Eche un vistazo a las alternativas que compilamos, incluida la
du -hs
opción para el directorio de volumen persistente de Docker.fuente
Mejorando la respuesta de Maxime:
docker ps --size
Verás algo como esto:
Al iniciar un contenedor, la imagen desde la que se inicia el contenedor se monta de solo lectura (virtual) .
Además de eso, se monta una capa grabable, en la que se escriben los cambios realizados en el contenedor.
Por lo tanto, el tamaño virtual (183 MB en el ejemplo) se usa solo una vez, independientemente de cuántos contenedores se inicien desde la misma imagen: puedo iniciar 1 contenedor o mil; No se utiliza espacio en disco adicional .
Sin embargo, el "Tamaño" (2B en el ejemplo) es único por contenedor, por lo que el espacio total utilizado en el disco es:
183MB + 5B + 2B
Tenga en cuenta que el tamaño que se muestra no incluye todo el espacio en disco utilizado para un contenedor.
Las cosas que no están incluidas actualmente son;
- volúmenes
- intercambio
- puntos de control
- espacio en disco utilizado para archivos de registro generados por contenedor
https://github.com/docker/docker.github.io/issues/1520#issuecomment-305179362
fuente