Saltar la navegación

4.2 Volúmenes y Bind Mount

Tal y como dijimos en el apartado anterior, de las soluciones de persistencia que nos proporciona docker nos vamos a quedar con dos para este aprendizaje, los volúmenes y los bind mounts. Antes de que hablemos de las características y ventajas de cada uno de ellas las vamos situar dentro de nuestro host con el siguiente esquema general:

Persistencia en contenedores
Juan Diego Pérez Jiménez. Persistencia en contenedores (Dominio público)

VOLÚMENES DOCKER

Si elegimos obtener persistencia usando volúmenes, estamos haciendo que los datos de los contenedores que nosotros decidamos se almacenen en una parte del sistema de ficheros que es gestionada por docker y a la que, debido a sus permisos, sólo docker tendrá acceso.

Esa "ZONA RESERVADA" de docker cambia de un sistema operativo a otro y también puede cambiar dependiendo de la forma de instalación, pero de manera general podemos decir que es:

  • /var/lib/docker/volumes en las distribuciones de Linux, si lo hemos instalado desde paquetes estándar (apt, dnf).
  •  /var/snap/docker/common/var-lib-docker/volumes en Linux si hemos instalado docker mediante snap (no es recomendable).
  • C:\ProgramData\docker\volumes en las instalaciones de Windows.
  • /var/lib/docker/volumes también en Mac aunque se requiere que haya una conexión previa a la máquina virtual que se crea.

Este tipo de volúmenes se suele usar en los siguiente casos:

  • Para compartir datos entre contenedores. Simplemente tendrán que usar el mismo volumen.
  • Para copias de seguridad ya sea para que sean usadas posteriormente por otros contenedores o para mover esos volúmenes a otros hosts.
  • Cuando quiero almacenar los datos de mi contenedor no localmente si no en un proveedor cloud.

Bind Mounts

Si elegimos obtener persistencia de los datos de los contenedores usando bind mount lo que estamos haciendo es "mapear" una parte del sistema de ficheros del host,  con una parte del sistema de ficheros del contenedor.

Este mapeado de partes del  sistema de ficheros del host con el sistema de ficheros del contenedor va a permitir:

  • Compartir ficheros entre el host y los containers.
  • Que otras aplicaciones que no sean docker tengan acceso a esos ficheros, ya sean código, ficheros etc...
  • Los cambios realizados en esos ficheros, hechos desde el contenedor o desde el host son visibles de inmediato en ambas partes.

Creado con eXeLearning (Ventana nueva)