la ventana acoplable limpia el espacio en disco

Limpie el espacio en disco ocupado por Docker

        </h1>
        <div class="clear"></div>
        <div class="postBody">

Docker ocupa mucho espacio. Cada vez que ejecutamos contenedores, extraemos imágenes, implementamos aplicaciones y construimos nuestras propias imágenes, nuestro espacio en disco se utilizará mucho.
Si también está preocupado por este problema, echemos un vistazo a cómo Docker usa el espacio en disco y cómo reciclarlo.
El espacio ocupado por la ventana acoplable se puede ver con el siguiente comando:

$ docker system df

TYPE enumera 4 tipos de discos utilizados por docker:

  • Imágenes : el espacio ocupado por todas las imágenes, incluidas las imágenes extraídas y las construidas localmente.

  • Contenedores : el espacio ocupado por los contenedores en ejecución, que representan el espacio de la capa de lectura y escritura de cada contenedor.

  • Volúmenes locales : espacio para que los contenedores monten volúmenes de datos locales.

  • Caché de compilación : espacio de caché generado durante el proceso de compilación de imágenes (solo disponible cuando se usa BuildKit, disponible después de Docker 18.09).
    El último RECLAMABLE es el tamaño reciclable.
    Echemos un vistazo a estos tipos por separado.
    Uso del disco contenedor
    Cada vez que se crea un contenedor, se crean algunos archivos y directorios, por ejemplo:

  • / var / lib / docker / container / ID, si el contenedor utiliza el modo de registro predeterminado, todos sus registros se guardarán en este directorio en formato JSON.

  • El directorio / var / lib / docker / overlay2 contiene la capa de lectura y escritura del contenedor. Si el contenedor utiliza su propio sistema de archivos para guardar datos, se escribirá en este directorio.
    Ahora comenzamos con un sistema completamente limpio, suponiendo que la ventana acoplable acaba de instalarse:

    primero, comenzamos un contenedor NGINX:

Ahora, después de ejecutar el comando df, verá:
un espejo, 126 MB

Un contenedor

No hay espacio recuperable en este momento porque el contenedor se está ejecutando y la imagen se está utilizando.
Ahora, creamos un archivo vacío de 100 MB en el contenedor:

$ docker exec -ti www \
  dd if=/dev/zero of=test.img bs=1024 count=0 seek=$[1024*100]

Verifique el espacio nuevamente:

Puede ver que el espacio ocupado por el contenedor ha aumentado. ¿Dónde se almacena este archivo en esta máquina?

Como se mencionó anteriormente, se almacena en la capa de lectura y escritura del contenedor.
Cuando se detiene el contenedor, el espacio ocupado por el contenedor se vuelve reciclable:

¿Cómo reciclar? Cuando se elimina un contenedor, se elimina el espacio ocupado por su capa de lectura-escritura asociada.
También puede eliminar todos los contenedores detenidos con un solo clic:

$ docker container prune

Después de eliminar el contenedor, la imagen también se puede reciclar:

El comando anterior de eliminación de contenedores de Docker es eliminar el contenedor detenido. Si desea eliminar todos los contenedores (incluidos los detenidos y en ejecución), puede utilizar los dos comandos siguientes:

$ docker rm -f $(docker ps -aq)
$ docker container rm -f $(docker container ls -aq)

Uso del disco espejo

Algunas imágenes son invisibles:

  • Un espejo secundario es un espejo intermedio al que hacen referencia otros espejos y no se puede eliminar.

  • El espejo en estado suspendido, es decir, el espejo que ya no se usará, se puede eliminar.
    El siguiente comando enumera todos los espejos suspendidos:

$ docker image ls -f dangling=true

Eliminar tales espejos:

$ docker image rm $(docker image ls -f dangling=true -q)
或者:
$ docker image prune

Si desea eliminar todos los espejos, puede usar el siguiente comando:
reo c k e r i m a ge r mdockerimagerm (docker image ls -q)
Tenga en cuenta que laimagenque utiliza el contenedor no se puede eliminar.

Uso de disco de volumen de datos

El volumen de datos es el almacenamiento de datos fuera del sistema de archivos del contenedor.
Por ejemplo, la aplicación en el contenedor tiene la función de cargar imágenes. Después de cargar, no debe guardarse en el contenedor, porque los datos en el contenedor se eliminarán a medida que el contenedor muera, por lo que estas imágenes deben guardarse fuera del contenedor, es decir, datos Volumen
Por ejemplo, ejecutamos un contenedor MongoDB para probar e importamos muchos datos de prueba, que no se encuentran dentro del contenedor, sino en el volumen de datos, porque el volumen de datos se utiliza en el Dockerfile de MongoDB.
Después de que se completó la prueba, el contenedor MongoDB se eliminó, pero los datos de la prueba todavía estaban allí y no se eliminaron.

Eliminar volúmenes de datos que ya no están en uso:

$ docker volume rm $(docker volume ls -q)
或者:
$ docker volume prune

Uso del disco Build Cache

Docker 18.09 presentó BuildKit, que mejora el rendimiento, la seguridad, la administración del almacenamiento y otras capacidades del proceso de compilación.
Puede usar el comando para eliminar el caché de compilación:

$ docker builder prune

Limpieza con un clic

A través de las instrucciones anteriores, sabemos que el contenedor, el espejo y el volumen de datos proporcionan el subcomando de poda para ayudarnos a recuperar espacio.
De hecho, también existe el subcomando de poda en el nivel del sistema acoplable, que puede limpiar el espacio inútil con un solo clic:

$ docker system prune

Es un buen hábito ejecutar este comando regularmente.

Publicado 63 artículos originales · elogiado 7 · vistas 3396

Supongo que te gusta

Origin blog.csdn.net/weixin_44523062/article/details/105381806
Recomendado
Clasificación