1 00:00:00,750 --> 00:00:11,849 Bien, vamos a empezar con los volúmenes en Docker. A ver, una cosa muy interesante con los contenedores es hacer que el trabajo que realizamos en los mismos con la información y con los datos persista. 2 00:00:12,189 --> 00:00:21,750 ¿Qué quiere esto decir? Bueno, porque cuando lanzo un contenedor, a la hora de cerrar el mismo o de salir o de pararlo, yo pueda tener parte de esa información que he generado o con la que he manipulado, 3 00:00:21,750 --> 00:00:26,969 la pueda tener disponible para manipularla o realizar algunas operaciones con ella. 4 00:00:27,210 --> 00:00:31,649 Eso se denomina persistir la información, es una forma de que todo lo que yo haga 5 00:00:31,649 --> 00:00:34,750 o cosas determinadas que yo haga en el contenedor o con determinados servicios 6 00:00:34,750 --> 00:00:38,369 que rulan en ese contenedor, esas informaciones persistan. 7 00:00:38,630 --> 00:00:41,509 Yo puedo establecer una serie de políticas, por ejemplo, de respaldo, 8 00:00:42,310 --> 00:00:46,009 de migración de dichos datos a esa información, la posibilidad de hacer backups, 9 00:00:46,689 --> 00:00:50,530 todo de manera, fijaos, absolutamente transparente a mí. 10 00:00:50,530 --> 00:00:56,630 Es decir, Docker administra completamente los volúmenes vinculados con los contenedores. 11 00:00:56,990 --> 00:01:03,390 Además hay una cosa muy buena y es que permite la comunicación de volúmenes entre contenedores 12 00:01:03,390 --> 00:01:07,230 y también con el propio host, la máquina de anfitriona. Eso lo vamos a ver. 13 00:01:09,030 --> 00:01:12,969 Además, fijaos que a partir de este momento, con el concepto de volumen, 14 00:01:13,090 --> 00:01:15,629 lo que se hace es que se disocia el concepto de volumen y contenedor. 15 00:01:15,629 --> 00:01:19,790 Es decir, yo puedo tener los volúmenes en la nube, en un NAS remoto, 16 00:01:19,790 --> 00:01:31,329 y acceder a ellos o sincronizarme con ellos, con el contenedor que yo en ese momento esté trabajando de una manera absolutamente eficaz y con arreglo a los servicios que yo en ese momento 17 00:01:31,329 --> 00:01:42,450 esté trabajando y para lo que yo quiera esa información tenerla disponible. Bueno, lo mejor es aprenderlo haciendo, entonces vamos a crear un volumen en el momento de crear un contenedor. 18 00:01:42,450 --> 00:02:00,609 Para hacer volúmenes vamos a hacer lo siguiente, hacemos un docker, la forma de correr el contenedor es la misma de siempre, vamos a hacer un docker run-7 de por ejemplo una máquina de Ubuntu y vamos a utilizar el modificador "-v", este modificador "-v", lo que me iría a hacer es crear un volumen y darle persistencia al contenedor. 19 00:02:00,609 --> 00:02:13,150 Si hacemos esto de aquí, ejemplo 1, lo que vamos a hacer, y luego vamos a poner evidentemente el nombre de la imagen de la que quiero generar el contenedor, ¿esto qué va a hacer? 20 00:02:13,150 --> 00:02:22,550 Bueno, pues evidentemente la imagen, si no la tengo en local, se va a ir remotamente a por ella, no lo sé, luego lo miraré, ahora seguramente me lo diga, ¿vale? Creo que ya tenía la imagen por aquí de Ubuntu. 21 00:02:22,550 --> 00:02:34,909 y lo más importante es que va a crear un volumen en mi equipo, en mi host, en mi equipo anfitrión, que se va a corresponder con el contenido del directorio barra ejemplo 1 22 00:02:34,909 --> 00:02:41,030 que se va a crear dentro del propio contenedor. De esta forma todo lo que yo guarde en este directorio dentro del contenedor se me va a quedar en maquinaria. 23 00:02:41,289 --> 00:02:50,490 Vamos a verlo porque es bastante interesante. Fijaos, ya he generado el contenedor en cuestión. Lo chulo de esto es que si yo hago un ls-la, 24 00:02:50,490 --> 00:02:58,090 Aquí tenemos todos los directorios del raíz, fijaos, y debe estar, ejemplo, ahí lo tenemos. 25 00:02:58,729 --> 00:03:04,949 Bueno, pues este directorio reside realmente, reside en mi máquina real, en mi host. 26 00:03:05,789 --> 00:03:10,310 Hay una cosa bien interesante, es decir, este es el volumen que he creado, en este caso no tiene nombre, 27 00:03:10,310 --> 00:03:19,990 simplemente es una especie de carpeta que hace como de amalgama, como de comunicación entre el anfitrión y el contenedor que he creado. 28 00:03:20,490 --> 00:03:35,009 Esto es bastante interesante, si hacemos ahora un exit, que va a cerrar el contenedor, voy a un clear, para ver dónde están los volúmenes hay que irse al directorio barra bar, barra lib de docker y coger evidentemente el directorio docker. 29 00:03:35,590 --> 00:03:43,110 Si hacemos un ls en el directorio de volumes es donde aparecen todos los volúmenes que se crean para los contenedores que estamos administrando. 30 00:03:43,110 --> 00:03:46,810 Si nos metemos en él, vais a ver lo que ocurre, que es una cosa muy graciosa 31 00:03:46,810 --> 00:03:54,689 Hacemos un ls, aquí tengo volúmenes que mi máquina ha creado para los distintos contenedores con los que yo he estado jugando 32 00:03:54,689 --> 00:04:02,169 Entonces, fijaos que tiene un nombre muy raro que genera aquí este chorizo, que es un código hash 33 00:04:02,169 --> 00:04:06,449 Cada uno de estos códigos hash se corresponden con los volúmenes que en ese momento he creado 34 00:04:06,550 --> 00:04:11,870 De manera que si yo hago un cd, por ejemplo, de fa, este de aquí, y me meto en él 35 00:04:11,870 --> 00:04:23,810 en todos los volúmenes, a un ls, lo que vamos a tener es un directorio barra baja data que es donde están los datos que hemos ido almacenando en el directorio correspondiente de ese contenido. 36 00:04:24,290 --> 00:04:34,610 Me explico. Si yo aquí me meto en cd barra baja data, ahora no vamos a tener nada, ¿de acuerdo? Pero es porque no hemos metido nada en él. 37 00:04:34,610 --> 00:04:50,290 Este barra detas se sincronizaría con el directorio barra ejemplo 1 que habíamos creado en el contenedor que hemos realizado anteriormente, ¿de acuerdo? De esa forma estamos haciendo persistir los datos en este equipo. 38 00:04:50,290 --> 00:05:17,870 Hay un comando que es docker volumes ls que me lista todos los volúmenes que tengo y además yo puedo hacer un docker inspect de el volumen que yo quiera, por ejemplo podemos coger este volumen último y hacerle un inspect, ahora es bastante engorroso trabajar con estos datos pero ya veremos como facilitarlo. 39 00:05:17,870 --> 00:05:21,370 ¿Veis? Aquí aparece información relativa a ese volumen. 40 00:05:22,009 --> 00:05:23,930 Bueno, de momento simplemente no quiero hacer muy largo este vídeo. 41 00:05:24,029 --> 00:05:26,850 Ahora vamos a ver un ejemplo de cómo se establece la comunicación 42 00:05:26,850 --> 00:05:31,149 entre la máquina anfitriona y el contenedor 43 00:05:31,149 --> 00:05:34,310 y iremos viendo otro tipo de volúmenes. 44 00:05:35,230 --> 00:05:35,550 Hasta ahora.