Para almacenar los datos y que persistan al apagar o reiniciar el contenedor tenemos dos tipos de almacenamiento persistente:
La diferencia entre bind mounts y los volúmenes, es que a los volumes sólo accede Docker y con los bind mounts es posible acceder a la ruta mapeada y modificar los ficheros.
Se utiliza un directorio del equipo anfitrion para almacenar los datos.
Un ejemplo sería <sxh> docker run -it –mount type=bind,source=/home/temporal,target=/tmp centos:latest /bin/bash</sxh>
En el ejemplo arrancamos un contedor de centos y mapeamos la carpeta /home/temporal del contenedor a la carpeta /tmp del host anfitrion
Otro ejemplo usando docker para windows <sxh>docker run -it –mount type=bind,source=c:/tmp,target=/temporal centos:latest /bin/bash</sxh>
Como ya dijimos los volumes se almacena en /var/lib/docker/volumes y los gestiona Docker directamente. Puedes ser anónimos o les podemos asignar un nombre descriptivo.
Para crear un volumen <sxh>docker volume create nombre_volumen</sxh>
Para ver los volumenes <sxh>docker volume ls</sxh>
Para borrar un volumen <sxh>docker volume rm nombre_volumen</sxh>
Por ejemplo para crear un volumen prueba y enlazarlo a nuestro contenedor <sxh>docker volume create prueba docker run -it –mount type=volume,source=prueba,target=/temporal centos:latest /bin/bash</sxh>