meta data de esta página
  •  

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
virtualizacion:docker:almacenamiento [2020/03/03 11:55] lcvirtualizacion:docker:almacenamiento [2023/01/18 14:37] (actual) – editor externo 127.0.0.1
Línea 1: Línea 1:
 ===== Almacenamiento en Docker ===== ===== Almacenamiento en Docker =====
 Para almacenar los datos y que persistan al apagar o reiniciar  el contenedor tenemos dos tipos de almacenamiento persistente: Para almacenar los datos y que persistan al apagar o reiniciar  el contenedor tenemos dos tipos de almacenamiento persistente:
-  *      bind mounts:  El almacenamiento se realiza en el sistema anfitrión del contenedor +  * 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.+  * 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.  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. 
 +<note>Ojo borra todo lo que ya hubiese en ese directorio </note>
  
 +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>
 +<note>Para compartir en Windows previamente dentro de las opciones para docker tienes que habilitar la opción de compartir C:{{ :virtualizacion:docker:dockershare.png?nolink&600 |}}</note>
 +
 +==== 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 <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>
  
 ==== Referencias ==== ==== Referencias ====
   * https://www.atareao.es/tutorial/docker/almacenamiento-en-contenedores/   * https://www.atareao.es/tutorial/docker/almacenamiento-en-contenedores/
 +  * https://4sysops.com/archives/introduction-to-docker-bind-mounts-and-volumes/