Volume
Los volúmenes son recursos administrador por docker directamente y que pueden ser vistos como un disco montado dentro de los contenedores:
Creación
La creación de un volume se puede realizar de tres formas diferentes:
1. Nuevo volúmen
Con la opción volume create
se puede crear un volumen con un nombre dado, para luego utilizar:
docker volume create MisDatos
Y puede ser visto en el listado de volúmenes disponibles:
$ docker volume ls
DRIVER VOLUME NAME
local MisDatos
2. Creación con ejecución
Esta opción es semejante a bind mount pues se usa con la opción -v
pero se indica un nombre en lugar de un path del host; esto hará que docker cree ese evolumen:
docker run -d -v DataVol:/opt/app/data nginx
Que hará que el volumen quede presentado dentro del contenedor en la carpeta /opt/app/data
.
Podemos analizar su configuración:
$ docker volume inspect DataVol
[
{
"CreatedAt": "2018-06-04T21:31:46Z",
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/DataVol/_data",
"Name": "DataVol",
"Options": null,
"Scope": "local"
}
]
Y dentro del contenedor lo podemos consultar con mount:
/dev/sda1 on /opt/app/data type ext4 (rw,relatime,data=ordered)
3. Volumen anónimo
El volumen anónimo es un espacio de volumen creado por docker (para evitar que los datos se borren al borrar el contenedor), pero que tiene un nombre aleatorio asignado por docker.
docker run -d -v /opt/app/data nginx
Y podemos consultar en la lista de volúmenes disponibles:
$ docker volume ls
DRIVER VOLUME NAME
local 9af22968682baefc5c10461d1b3aff226c2a917fe3222ac8f90dd768e1ed5238