4.3 Gestionando volúmenes y obteniendo
información
En el apartado anterior presentamos
las dos opciones para la persistencia de datos con
docker que consideramos que eran de mayor interés:
volúmenes y bind mounts. En este apartado nos
centraremos en los volúmenes y en las
operaciones básicas que podemos hacer con ellos
mediante la orden docker volume. Estas
operaciones son:
Creación de los volúmenes.
Eliminación de los volúmenes.
Obtención de información de los
volúmenes.
En el apartado siguiente
veremos como, una vez hayamos definido estos
volúmenes, podremos usarlos en nuestros
contenedores.
CREACIÓN DE VOLÚMENES
Para la creación de volúmenes
vamos a usar la orden docker volume
create que tiene la siguiente
estructura:
Juan Diego Pérez Jiménez.
Creación de volúmenes.
Estructura de la orden docker volume
create(Dominio público)
Entre las opciones que podemos incluir a la
hora de crear los volúmenes están:
--driver o -d para
especificar el driver elegido para el
volumen. Si no especificamos nada, el driver
utilizado es ellocal,
que es el que senos interesa desde el punto
de vista de desarrollo porque desarrollamos
en nuestra máquina. Al ser Linux en mi caso
ese driver local es overlay2
pero existen otras posibilidades como aufs,
btrfs, zfs, devicemapper o vfs. Si
estamos interesados en conocer al detalle
cada uno de ellos aquí
tenemos más información.
--label para especificar
los metadatos del volumen mediante parejas
clave-valor.
--opt o -o para
especificar opciones relativas al driver
elegido. Si son opciones relativas al sistema
de ficheros puedo usar una sintaxis
similar a las opciones de la orden mount.
--name para especificar un
nombre para el volumen. Es una alternativa a
especificarlo al final que es la forma
que está descrita en la imagen superior.
Vamos a ilustrar este funcionamiento con varios
ejemplos:
# Creación de un volumen
llamado datos (driver local sin
opciones)
> docker volume create
data
# Creación de un volumen
data especificando el driver local
> docker volume create -d
local data
# Creación de un volumen
llamando web añadiendo varios
metadatos
> docker volume create
--label servicio=http --label
server=apache Web
Aunque queda fuera del alcance de los
objetivos de este curso es importante destacar
que mediante otras opciones podríamos indicar
que los volúmenes estén en otros dispositivos,
en montajes nfs e incluso en servicios de
almacenamiento en nube públicas o privadas.
ELIMINACIÓN DE VOLÚMENES
Para la eliminación de los volúmenes creados
tenemos dos opciones:
docker volume rm para
eliminar un volumen en concreto (por nombre o
por id).
docker volumen prune para
eliminar los volúmenes que no están siendo
usados por ningún contenedor.
A continuación vamos a ver una lista de
ejemplos para ilustrar el funcionamiento de
ambos:
Como podemos ver, la
información que nos proporciona es limitada, el
driver usado y el nombre que tenga cada volumen
de la lista. Si no tiene nombre se nos muestra
el ID del volumen.
INFORMACIÓN
DETALLADA DE UN VOLUMEN
Si
queremos información más detallada de un volumen
tenemos que ejecutar la siguiente orden: