Cómo usar el comando docker volume ls para listar y filtrar volúmenes

DockerDockerBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderá cómo utilizar de manera efectiva el comando docker volume ls para administrar sus volúmenes de Docker. Comenzaremos creando volúmenes de muestra con los que trabajar. Luego, descubrirá cómo listar todos los volúmenes existentes en su sistema.

A partir de la lista, explorará cómo filtrar los volúmenes en función de criterios como el nombre y el controlador (driver), y también por su estado de "dangling" (sin referencias). Finalmente, aprenderá cómo formatear la salida del comando docker volume ls para una mejor legibilidad y extracción de información específica.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/VolumeOperationsGroup(["Volume Operations"]) docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/rm("Remove Container") docker/ContainerOperationsGroup -.-> docker/create("Create Container") docker/VolumeOperationsGroup -.-> docker/volume("Manage Volumes") subgraph Lab Skills docker/ls -.-> lab-555260{{"Cómo usar el comando docker volume ls para listar y filtrar volúmenes"}} docker/rm -.-> lab-555260{{"Cómo usar el comando docker volume ls para listar y filtrar volúmenes"}} docker/create -.-> lab-555260{{"Cómo usar el comando docker volume ls para listar y filtrar volúmenes"}} docker/volume -.-> lab-555260{{"Cómo usar el comando docker volume ls para listar y filtrar volúmenes"}} end

Crear volúmenes de muestra

En este paso, aprenderemos cómo crear volúmenes de Docker. Los volúmenes son la forma preferida de persistir los datos generados y utilizados por los contenedores de Docker. Mientras que los "bind mounts" dependen de la estructura de directorios de la máquina host, los volúmenes son completamente administrados por Docker.

Para crear un volumen, utilizamos el comando docker volume create. Vamos a crear un volumen simple llamado myvolume.

docker volume create myvolume

Debería ver el nombre del volumen impreso en la consola si la creación fue exitosa.

Ahora, vamos a crear otro volumen llamado another_volume.

docker volume create another_volume

Ahora hemos creado dos volúmenes que pueden ser utilizados por los contenedores de Docker para almacenar datos persistentes.

Listar todos los volúmenes

En este paso, aprenderemos cómo listar todos los volúmenes de Docker que existen en nuestro sistema. Esto es útil para ver qué volúmenes están disponibles y administrarlos.

Para listar todos los volúmenes, utilizamos el comando docker volume ls. Este comando mostrará una lista de todos los volúmenes, incluyendo su controlador (driver) y nombre.

docker volume ls

Debería ver los volúmenes que creamos en el paso anterior (myvolume y another_volume) enumerados en la salida, junto con cualquier otro volumen que pueda existir en el sistema. La salida generalmente incluye el DRIVER y el VOLUME NAME.

El controlador (driver) predeterminado para los volúmenes suele ser local, lo que significa que el volumen se almacena en la máquina local donde se está ejecutando Docker.

Filtrar volúmenes por nombre y controlador (driver)

En este paso, aprenderemos cómo filtrar la lista de volúmenes de Docker en función de su nombre y controlador (driver). Esto es útil cuando tienes muchos volúmenes y quieres encontrar algunos específicos.

Podemos usar la opción --filter con el comando docker volume ls para filtrar la salida. El filtro toma un par clave=valor.

Para filtrar por nombre, usamos la clave name. Vamos a filtrar el volumen llamado myvolume.

docker volume ls --filter name=myvolume

Solo deberías ver el myvolume en la salida.

Ahora, vamos a filtrar por el controlador (driver). Dado que usamos el controlador (driver) predeterminado al crear los volúmenes, el controlador (driver) es local. Vamos a filtrar los volúmenes que usan el controlador (driver) local.

docker volume ls --filter driver=local

Este comando debería listar todos los volúmenes que usan el controlador (driver) local, lo que debería incluir tanto myvolume como another_volume.

También puedes combinar filtros. Por ejemplo, para filtrar un volumen llamado myvolume que use el controlador (driver) local, puedes usar:

docker volume ls --filter name=myvolume --filter driver=local

Esto mostrará nuevamente solo el myvolume.

Filtrar volúmenes por estado de "dangling"

En este paso, aprenderemos cómo filtrar los volúmenes de Docker según su estado de "dangling" (sin uso). Un volumen "dangling" es un volumen que actualmente no está adjunto a ningún contenedor. Estos volúmenes pueden consumir espacio en disco innecesariamente.

Para filtrar los volúmenes "dangling", usamos la opción --filter dangling=true.

Primero, creemos un contenedor y adjuntemos uno de nuestros volúmenes a él. Usaremos la imagen ubuntu. Si no tienes la imagen ubuntu localmente, Docker la descargará automáticamente.

docker run -d --name mycontainer -v myvolume:/app ubuntu sleep 3600

Este comando ejecuta un contenedor llamado mycontainer en modo desatendido (-d), monta myvolume en el directorio /app dentro del contenedor (-v myvolume:/app), utiliza la imagen ubuntu y mantiene el contenedor en ejecución durante una hora (sleep 3600).

Ahora, listemos todos los volúmenes nuevamente:

docker volume ls

Verás tanto myvolume como another_volume. myvolume está siendo utilizado actualmente por mycontainer. another_volume no está adjunto a ningún contenedor, por lo que es un volumen "dangling".

Ahora, filtremos los volúmenes "dangling":

docker volume ls --filter dangling=true

Deberías ver another_volume en la salida, ya que no está adjunto a ningún contenedor en ejecución.

Para ver los volúmenes que no son "dangling" (es decir, adjuntos a un contenedor), puedes usar --filter dangling=false.

docker volume ls --filter dangling=false

Esto debería mostrar myvolume.

Finalmente, detengamos y eliminemos el contenedor que creamos.

docker stop mycontainer
docker rm mycontainer

Ahora, si listas los volúmenes "dangling" nuevamente:

docker volume ls --filter dangling=true

Tanto myvolume como another_volume deberían aparecer ahora como "dangling", porque myvolume ya no está adjunto a un contenedor.

Formatear la salida de los volúmenes

En este paso, aprenderemos cómo formatear la salida del comando docker volume ls. Esto nos permite personalizar la información mostrada y presentarla de la manera más útil para nuestras necesidades.

Podemos usar la opción --format para especificar el formato de salida. Esta opción acepta la sintaxis de plantillas de Go.

Listemos los volúmenes y mostremos solo el nombre del volumen. Podemos usar la plantilla {{.Name}} para lograr esto.

docker volume ls --format "{{.Name}}"

Este comando mostrará una lista de nombres de volúmenes, uno por línea.

Ahora, mostremos tanto el controlador (driver) como el nombre, separados por dos puntos. Podemos usar {{.Driver}}:{{.Name}}.

docker volume ls --format "{{.Driver}}:{{.Name}}"

La salida mostrará el controlador (driver) y el nombre de cada volumen, como local:myvolume.

También podemos usar el formato table para mostrar la salida en un formato de tabla más legible, similar a la salida predeterminada pero con más control sobre las columnas. Mostremos el controlador (driver) y el nombre en una tabla.

docker volume ls --format "table {{.Driver}}\t{{.Name}}"

El \t se utiliza para crear un espacio de tabulación entre las columnas. La salida será una tabla con "DRIVER" y "NAME" como encabezados.

Finalmente, limpiemos los volúmenes que creamos durante este laboratorio. Podemos eliminarlos usando el comando docker volume rm.

docker volume rm myvolume another_volume

Deberías ver una confirmación de que los volúmenes se han eliminado.

Resumen

En este laboratorio, aprendimos cómo gestionar los volúmenes de Docker utilizando el comando docker volume ls. Comenzamos creando volúmenes de muestra con docker volume create. Posteriormente, exploramos cómo listar todos los volúmenes existentes en el sistema utilizando docker volume ls.

Además, profundizamos en la filtrado de volúmenes para encontrar volúmenes específicos. Aprendimos a filtrar volúmenes por nombre y controlador (driver) utilizando la opción --filter con las claves name y driver. El laboratorio también cubrió cómo filtrar volúmenes según su estado de "dangling" (sin uso) y cómo formatear la salida del comando docker volume ls para una mejor legibilidad.