meta data de esta página
  •  

¡Esta es una revisión vieja del documento!


Almacenamiento en Docker

Para almacenar los datos y que persistan al apagar o reiniciar el contenedor tenemos dos tipos de almacenamiento persistente:

  • bind mount: El almacenamiento se realiza en el sistema anfitrión del contenedor
  • volumes: Docker almacena los datos dentro de un área que él controla en el sistema de ficheros. Los volúmenes se almacenarán en /var/lib/docker/volumes/ y solo Docker tiene permisos sobre esta ubicación. Un volumen puede ser montado por diferentes contenedores a la vez.

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.

Bind Mount

Se utiliza un directorio del equipo anfitrion para almacenar los datos.

Ojo borra todo lo que ya hubiese en ese directorio

Un ejemplo sería

1
docker run -it  --mount type=bind,source=/home/temporal,target=/tmp centos:latest

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

1
docker run -it --mount type=bind,source=c:/tmp,target=/temporal centos:latest /bin/bash

Para compartir en Windows previamente dentro de las opciones para docker tienes que habilitar la opción de compartir C:

Volumen

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

1
docker volume create nombre_volumen

Para ver los volumenes

1
docker volume ls

Para borrar un volumen

1
docker volume rm nombre_volumen

Por ejemplo para crear un volumen prueba y enlazarlo a nuestro contenedor

1
2
docker volume create prueba
docker run -it --mount type=volume,source=prueba,target=/temporal centos:latest /bin/bash

Referencias