GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo eliminar imágenes, contenedores, redes y volúmenes de Docker

Introducción

Los contenedores Docker están diseñados para proporcionar un entorno autosuficiente, con todas las bibliotecas y configuraciones necesarias para que se ejecute el software. Durante el desarrollo, pueden volverse desorganizados con componentes antiguos, obsoletos y sin usar.

En esta guía, aprenderá a organizar un entorno de Docker al eliminar imágenes, contenedores, volúmenes y redes de Docker.

El uso de estos comandos hace que la administración de contenedores de Docker sea rápida y sencilla.

Requisitos previos

  • Sistema Linux que ejecuta Docker
  • Acceso a una terminal/línea de comandos (Ctrl +Alt +T en Ubuntu, Alt +F2 en CentOS)
  • Cuenta de usuario con sudo privilegios

Cómo eliminar contenedores Docker

Un contenedor crea un entorno específico en el que se puede ejecutar un proceso. Muchos contenedores se crean, prueban y abandonan durante el ciclo de vida del desarrollo.

Por lo tanto, es importante saber cómo encontrar contenedores innecesarios y eliminarlos.

Parada de Contenedores

1. Primero, enumere todos los contenedores de Docker usando el comando:

docker container ls -a

El resultado muestra una lista de todos los contenedores en ejecución, sus ID, nombres, imágenes, estado y otros parámetros.

También puede generar una lista de todos los contenedores solo por sus ID numéricas, ejecute el comando:

docker container ls -aq 

2. Para detener un contenedor específico , ingresa lo siguiente:

docker container stop [container_id]

Reemplazar [container_id] con el ID numérico del contenedor de su lista.

Puede ingresar varias ID de contenedor en el mismo comando.

Para detener todos los contenedores , introduce:

docker container stop $(docker container ls -aq)

Esto obliga a Docker a utilizar la lista de todos los ID de contenedores como destino de stop comando.

Eliminar un contenedor detenido

Para eliminar un contenedor detenido , usa el comando:

docker container rm [container_id]

Al igual que antes, esto elimina un contenedor con el ID que especifique.

Eliminar todos los contenedores detenidos

Para eliminar todos los contenedores detenidos :

docker container rm $(docker container ls -aq)

Eliminar todos los contenedores Docker

Para limpiar Docker y comenzar desde cero, ingrese el comando:

docker container stop $(docker container ls -aq) && docker system prune -af --volumes

Esto indica a Docker que detenga los contenedores enumerados entre paréntesis.

Dentro de los paréntesis, indica a Docker que genere una lista de todos los contenedores con su ID numérico. Luego, la información se devuelve a la container stop comando y detiene todos los contenedores.

El && El atributo indica a Docker que elimine todos los contenedores y volúmenes detenidos.

-af indica que esto debería aplicarse a todos los contenedores (a ) sin una confirmación requerida (f ).

Eliminación de contenedor con filtros

También puede especificar eliminar todos los objetos que no coincidan con una etiqueta específica.

Para hacerlo, use el comando:

docker container prune --filter="label!=maintainer=Jeremy"

Este comando le dice a Docker que elimine todos los contenedores que no están etiquetados con un mantenedor de "jeremy ." El != comando es una notación lógica que significa "no igual a ."

Un desglose de la label comandos:

  • label=<key>
  • label=<key>=<value>
  • label!=<key>
  • label!=<key>=<value>

El uso de estos términos junto con las etiquetas le brinda un control profundo sobre la eliminación de activos en Docker.

Cómo eliminar imágenes de Docker

Las imágenes de Docker son archivos que incluyen varias capas que se utilizan para ejecutar código dentro de un contenedor.

Las imágenes pueden pasar por muchas iteraciones durante el desarrollo. Las imágenes antiguas y desactualizadas pueden saturar su sistema, ocupando espacio de almacenamiento y haciendo que las búsquedas sean más engorrosas.

1. Para eliminar una imagen de Docker , comience enumerando todas las imágenes en su sistema:

docker image ls

El resultado muestra las imágenes de Docker disponibles localmente, como se ve a continuación.

2. Tome nota del ID DE LA IMAGEN – este es el identificador utilizado para eliminar la imagen.

3. Luego, elimine las imágenes no deseadas:

docker image rm [image_id1] [image_id2]

Reemplazar [image_id1] y [image_id2] con la identificación de la imagen que extrajo del primer comando. Puede ingresar una ID de imagen única o varias ID para eliminarlas.

El sistema puede responder a su solicitud con un mensaje de error, que hay un conflicto y no puede eliminar la referencia del repositorio. Esto indica que un contenedor está usando la imagen. Primero debe eliminar el contenedor antes de poder eliminar la imagen.

Eliminar imágenes de Docker con filtros

En el momento de la publicación, los únicos filtros admitidos son until label . Aún así, estas son herramientas poderosas para administrar los recursos de Docker.

Usa el until filtro para eliminar todos los recursos hasta un momento dado.

Introduzca lo siguiente:

docker image prune -a --filter "until=24h"

Esto elimina todo (-a ) imágenes creadas en las últimas 24 horas. El comando se puede utilizar para contenedores, imágenes y filtros. Asegúrese de especificar el activo que desea eliminar.

El until El comando acepta marcas de tiempo de Unix, marcas de tiempo con formato de fecha o una cantidad de tiempo (30 min, 4 h, 2 h 25 min) calculada contra el tiempo de la máquina.

Usa la label Comando para eliminar activos definidos por etiquetas.

Introduzca lo siguiente:

docker image prune --filter="label=old"

Esto elimina todas las imágenes de la ventana acoplable que han sido etiquetados como "antiguos".

El filtrado también se puede utilizar para definir un valor específico de una etiqueta.

Por ejemplo, si un contenedor está etiquetado con una clave de "mantenedor" y el valor de "mantenedor" es "factura" o "jeremy", puede escribir:

docker container prune --filter="label=maintainer=bill"

Docker luego elimina todos los contenedores con la etiqueta "mantenedor" con un valor de "factura".

Cómo eliminar volúmenes de Docker

Se utiliza un volumen para almacenar datos de Docker.

Ayuda a almacenar y organizar datos fuera de los contenedores de manera que sean accesibles para múltiples contenedores.

1. Utilice el siguiente comando para generar una lista de todos los volúmenes de Docker disponibles:

docker volume ls

Tome nota del NOMBRE DEL VOLUMEN desea eliminar.

2. Luego ingresa:

docker volume rm VolumeName

Asegúrese de reemplazar VolumeName con el nombre real que generó con el comando anterior.

Si el volumen está en uso por un contenedor existente, el sistema responde con un error. Esto significa que primero debe quitar el contenedor.

Cómo eliminar redes Docker

Las redes Docker permiten que diferentes contenedores se comuniquen entre sí libremente y, al mismo tiempo, evitan el tráfico desde fuera de la red. Esto normalmente se hace con una red de puente Docker.

La prune El comando elimina todas las redes no utilizadas.

Eliminación de una sola red

1. Muestre una lista de todas las redes Docker existentes con el comando:

docker network ls

2. Toma nota del ID DE RED – este es el identificador utilizado para eliminar una red específica. Luego, ingresa:

docker network rm [networkID]

Reemplazar [networkID] con el ID que capturaste desde el primer comando.

Puede recibir un mensaje de error que dice que la red tiene terminales activos. Eso significa que la red está actualmente en uso por contenedores. Debe eliminar los contenedores que utilizan la red antes de poder eliminar la red.

Eliminar todos los objetos Docker no utilizados

La prune El comando elimina automáticamente todos los recursos que no están asociados con un contenedor. Esta es una forma simplificada de limpiar imágenes, contenedores, volúmenes y redes no utilizados.

En una ventana de terminal, ingresa lo siguiente:

docker system prune

Se pueden incluir banderas adicionales:

  • -a Para incluir contenedores detenidos e imágenes no utilizadas
  • -f Omite el cuadro de diálogo de confirmación
  • --volumes Elimina todos los volúmenes no utilizados

Además, puede especificar que se elimine un solo tipo de objeto, en lugar de todo el entorno:

docker container prune
docker image prune
docker volume prune
docker network prune

Ejecutando docker system prune -a elimina tanto las imágenes no utilizadas como las que cuelgan. Las imágenes utilizadas en un contenedor, ya sea que se estén ejecutando actualmente o que hayan salido, NO se verán afectadas.

Lista de todos los recursos de Docker

Introduzca los siguientes comandos para mostrar los recursos:

docker container ls
docker image ls
docker volume ls
docker network ls
docker info

Lo mencionado anteriormente enumera la cantidad de contenedores, imágenes e información sobre la instalación de Docker. Estos comandos pueden ayudarlo a ubicar e identificar los recursos que desea conservar o que desea eliminar.

También se pueden agregar las siguientes banderas:

  • -a mostrar todo un recurso (incluidos los que están detenidos)
  • -q o --quiet (mostrar solo el ID numérico)

Ubuntu
  1. Cómo eliminar todas las imágenes, contenedores, volúmenes, redes y recursos no utilizados de Docker

  2. Cómo crear, enumerar y eliminar contenedores Docker en Linux

  3. Cómo compartir datos entre contenedores Docker

  4. Cómo hacer una copia de seguridad y restaurar contenedores Docker

  5. Cómo pausar y reanudar contenedores Docker

Cómo verificar el uso de espacio en disco para imágenes, contenedores y volúmenes de Docker

Cómo ejecutar contenedores Docker

Cómo eliminar contenedores Docker

Cómo detener los contenedores de Docker

Cómo nombrar o renombrar contenedores Docker

Cómo gestionar contenedores Docker