Todo sobre Apple, Android, Juegos Apks y Sitios de Peliculas

Cómo comprobar el uso del espacio en disco para imágenes y contenedores de Docker

Con aplicaciones en contenedores que se ejecutan en entornos aislados, puede resultar más difícil de lo habitual localizar problemas con aplicaciones que utilizan demasiado espacio de almacenamiento. Afortunadamente, Docker proporciona comandos para administrar el uso del disco del contenedor.

Hacer una verificación rápida

Y si desea comprobar cuánto espacio está utilizando Docker, puede utilizar el comando incorporado docker system df, así como el comando de Linux.

 du 

para obtener el tamaño de todo el directorio.

docker system df

sudo du -sh /var/lib/docker/

Este comando muestra imágenes estáticas, contenedores que han realizado cambios en su sistema de archivos (por ejemplo, archivos de registro) y volúmenes vinculados a los contenedores.

Sin embargo, esto no es del todo exacto: aquí tengo muchos contenedores ejecutándose, pero todos almacenan datos en montajes vinculados en el sistema operativo host, no en volúmenes.

Limpieza de imágenes de Docker

Las imágenes de Docker son diferentes a los contenedores en ejecución; son los archivos que descarga desde Docker Hub para iniciar un contenedor. Por lo general, son bastante grandes y contienen todo el código necesario para ejecutar un sistema operativo básico y su aplicación.

Cada versión de una imagen es independiente, pero se almacena en capas, por lo que varias versiones nuevas no ocuparán el doble de espacio de almacenamiento. Puede ver todas las imágenes con image ls:

docker image ls

Limpiarlos es fácil; Por supuesto, no desea eliminar imágenes de contenedores en ejecución, pero eliminar imágenes antiguas está bien: simplemente se volverán a descargar cuando sea necesario.

Puede podar todas las imágenes o eliminar manualmente una por ID:

docker image prune -a

docker image rm 3a8d8f76e7f8f

Comprobación del uso del contenedor en ejecución

Los contenedores son un poco más complicados de rastrear, ya que pueden usar datos de muchas maneras diferentes:

  • Imagen subyacente: cada contenedor deberá almacenar su imagen, pero esta se reutiliza en todos los contenedores.
  • Capa de modificación: si un contenedor escribe en su sistema de archivos, como archivos de registro, se guardará en una nueva capa encima de la imagen subyacente. Esto es único para cada contenedor.
  • Volúmenes: los contenedores pueden tener unidades virtuales montadas, que almacenan datos directamente en el disco fuera del sistema de almacenamiento Docker.
  • Vincular monturas: los contenedores pueden opcionalmente acceder directamente a los directorios del host.

Todo, excepto los montajes vinculados, aparecerá en la salida df del sistema acoplable. Si desea ver las estadísticas de cada contenedor, Docker proporciona una marca para que el comando ps enumere el uso:

docker ps --size

Aquí, esto muestra el tamaño en el disco, así como el tamaño virtual (que incluye la imagen subyacente compartida). Dado que estos contenedores no utilizan ningún almacenamiento fuera de sus montajes de enlace, el tamaño es cero bytes.

Montajes de depuración (enlaces y volúmenes)

Para ver el uso de montaje, tanto para montajes de enlace directo como para volúmenes administrados, deberá obtener su tamaño del sistema operativo host. Si no sabe dónde están, puede ejecutar docker container ls para obtener el ID de un contenedor y luego ejecutar docker inspect para obtener la información de montaje:

docker inspect a1c904020044 -f '{{json .Mounts}}'

[{"Type":"bind","Source":"/home/daemon-data/921ff235-5075-4d64-b977-8d02cc3dacc9","Destination":"/home/container","Mode":"","RW":true,"Propagation":"rprivate"}]

Luego, puedes verificar el tamaño total con du -sh:

sudo du -sh /path/to/mount/

Contenedores y volúmenes de poda

Docker nunca elimina contenedores o volúmenes (a menos que ejecute contenedores con el indicador –rm), ya que hacerlo podría perder sus datos. Sin embargo, es posible que tenga una copia de seguridad de datos antiguos que deban recolectarse como basura.

Al igual que las imágenes, Docker proporciona un comando de poda para contenedores y volúmenes:

docker container prune

docker volume prune

Depuración manual

Si tiene acceso directo al servidor que ejecuta Docker, puede abrir un shell en el contenedor:

sudo docker exec -it containerID /bin/bash

y ejecute du -sh en todo, lo que devolverá todos los datos, incluido el tamaño de la imagen, los datos sobre los montajes de enlace y los datos en los volúmenes.

sudo du -sh /

Cómo comprobar el uso del espacio en disco para imágenes y contenedores de Docker

Con aplicaciones en contenedores que se ejecutan en entornos aislados, puede resultar más difícil de lo habitual localizar problemas con aplicaciones que utilizan demasiado espacio de almacenamiento. Afortunadamente, Docker proporciona comandos para administrar el uso del disco del contenedor.

Hacer una verificación rápida

Y si desea comprobar cuánto espacio está utilizando Docker, puede utilizar el comando incorporado docker system df, así como el comando de Linux.

 du 

para obtener el tamaño de todo el directorio.

docker system df

sudo du -sh /var/lib/docker/

Este comando muestra imágenes estáticas, contenedores que han realizado cambios en su sistema de archivos (por ejemplo, archivos de registro) y volúmenes vinculados a los contenedores.

Sin embargo, esto no es del todo exacto: aquí tengo muchos contenedores ejecutándose, pero todos almacenan datos en montajes vinculados en el sistema operativo host, no en volúmenes.

Limpieza de imágenes de Docker

Las imágenes de Docker son diferentes a los contenedores en ejecución; son los archivos que descarga desde Docker Hub para iniciar un contenedor. Por lo general, son bastante grandes y contienen todo el código necesario para ejecutar un sistema operativo básico y su aplicación.

Cada versión de una imagen es independiente, pero se almacena en capas, por lo que varias versiones nuevas no ocuparán el doble de espacio de almacenamiento. Puede ver todas las imágenes con image ls:

docker image ls

Limpiarlos es fácil; Por supuesto, no desea eliminar imágenes de contenedores en ejecución, pero eliminar imágenes antiguas está bien: simplemente se volverán a descargar cuando sea necesario.

Puede podar todas las imágenes o eliminar manualmente una por ID:

docker image prune -a

docker image rm 3a8d8f76e7f8f

Comprobación del uso del contenedor en ejecución

Los contenedores son un poco más complicados de rastrear, ya que pueden usar datos de muchas maneras diferentes:

  • Imagen subyacente: cada contenedor deberá almacenar su imagen, pero esta se reutiliza en todos los contenedores.
  • Capa de modificación: si un contenedor escribe en su sistema de archivos, como archivos de registro, se guardará en una nueva capa encima de la imagen subyacente. Esto es único para cada contenedor.
  • Volúmenes: los contenedores pueden tener unidades virtuales montadas, que almacenan datos directamente en el disco fuera del sistema de almacenamiento Docker.
  • Vincular monturas: los contenedores pueden opcionalmente acceder directamente a los directorios del host.

Todo, excepto los montajes vinculados, aparecerá en la salida df del sistema acoplable. Si desea ver las estadísticas de cada contenedor, Docker proporciona una marca para que el comando ps enumere el uso:

docker ps --size

Aquí, esto muestra el tamaño en el disco, así como el tamaño virtual (que incluye la imagen subyacente compartida). Dado que estos contenedores no utilizan ningún almacenamiento fuera de sus montajes de enlace, el tamaño es cero bytes.

Montajes de depuración (enlaces y volúmenes)

Para ver el uso de montaje, tanto para montajes de enlace directo como para volúmenes administrados, deberá obtener su tamaño del sistema operativo host. Si no sabe dónde están, puede ejecutar docker container ls para obtener el ID de un contenedor y luego ejecutar docker inspect para obtener la información de montaje:

docker inspect a1c904020044 -f '{{json .Mounts}}'

[{"Type":"bind","Source":"/home/daemon-data/921ff235-5075-4d64-b977-8d02cc3dacc9","Destination":"/home/container","Mode":"","RW":true,"Propagation":"rprivate"}]

Luego, puedes verificar el tamaño total con du -sh:

sudo du -sh /path/to/mount/

Contenedores y volúmenes de poda

Docker nunca elimina contenedores o volúmenes (a menos que ejecute contenedores con el indicador –rm), ya que hacerlo podría perder sus datos. Sin embargo, es posible que tenga una copia de seguridad de datos antiguos que deban recolectarse como basura.

Al igual que las imágenes, Docker proporciona un comando de poda para contenedores y volúmenes:

docker container prune

docker volume prune

Depuración manual

Si tiene acceso directo al servidor que ejecuta Docker, puede abrir un shell en el contenedor:

sudo docker exec -it containerID /bin/bash

y ejecute du -sh en todo, lo que devolverá todos los datos, incluido el tamaño de la imagen, los datos sobre los montajes de enlace y los datos en los volúmenes.

sudo du -sh /