Los volúmenes son el método de almacenamiento de datos de los containers en Docker. Cada vez que damos un "$docker run" generamos un espacio en disco en el cual se deben almacenar los datos que va a utilizar el contenedor. Esta información es volátil pues cuando el ciclo de vida del container termina; se va con el la información de este almacenamiento.
Dada esta condición es necesario separar del proceso de ejecución aislado la información con la que esta trabajando nuestro contenedor. Es por ello que mostraremos a continuación dos de los métodos mas convencionales de trabajo con el plano de datos separado del contenedor.
Share: Se trata de una carpeta alojada en el sistema operativo principal. Es una forma común de trabajar con los datos de forma externa al contenedor. Genera la posibilidad de modificaciones externas al contenedor lo cual lo hace flexible para trabajar, pero lo hace susceptible a modificaciones no controladas. Para ello simplemente tenemos que indicarle a nuestro contenedor cual sera la carpeta en donde estará alojados los datos:
** Visualizar los volumenes existentes**
docker volume ls
docker volume prune
docker volume create datodb
docker run -d --name mongoIII --mount src=datodb,dst=/data/db mongo
docker exec -it mongoIII bash
mongo
use deimer
db.users.insert({"name": "Deimer"})
WriteResult({ "nInserted" : 1 })
db.users.find()
{ "_id" : ObjectId("5cb3a76edea9a4451f789d44"), "name" : "Deimer" }
docker rm -f mongoIII
docker run -d --name mongoIV --mount src=datodb,dst=/data/db mongo
docker exec -it mongoIV bash
mongo
db.users.find()
use deimer
db.users.find()
{ "_id" : ObjectId("5cb50e83b510b6a7303ade1a"), "name" : "Deimer" }
docker volume create --driver local \
--opt type=tmpfs \
--opt device=tmpfs \
--opt o=size=100m,uid=1000 \
nombredelvolumen
0 Comments