Descarga la aplicación para disfrutar aún más
Esta es una vista previa del archivo. Inicie sesión para ver el archivo original
1 00:00:05,720 --> 00:00:12,400 En esta clase vamos a seguir practicando con el Docker con post file y la herramienta de lo que compost. 2 00:00:12,890 --> 00:00:16,940 Esta es una aplicación bien interesante porque vamos a aplicar varias cosas. 3 00:00:17,120 --> 00:00:19,340 Vamos a utilizar la base de datos MongoDB. 4 00:00:19,810 --> 00:00:23,420 También vamos a conectarnos mediante Mongo Express para revisar la base de datos. 5 00:00:23,660 --> 00:00:29,210 Y también quiero que después montemos esta aplicación, que yo se la voy a facilitar. 6 00:00:29,240 --> 00:00:36,560 Luego les paso el URL en el cual quiero que descarguemos y corramos esta aplicación que yo hice un curso 7 00:00:36,560 --> 00:00:40,610 de introducción para que lo corramos para ver cómo funciona todo. 8 00:00:41,150 --> 00:00:43,200 Entonces vamos a hacer todo este procedimiento. 9 00:00:43,220 --> 00:00:46,100 Esto es una aplicación que básicamente solo depende de MongoDB. 10 00:00:46,370 --> 00:00:52,280 Pero adicionalmente, yo quiero poder analizar cómo está la base de datos directamente desde un servicio 11 00:00:52,280 --> 00:00:53,990 que vamos a montar, que es Mundo Express. 12 00:00:54,920 --> 00:01:02,030 Otra cosa es que si nosotros intentamos levantar o revisar la parte de Mongo en nuestro table, se puede 13 00:01:02,030 --> 00:01:07,000 leerla, pero no puede hacer ciertas cosas porque no está todavía especializado en Mongo. 14 00:01:07,130 --> 00:01:09,230 Es más, ustedes intentan hacer una conexión. 15 00:01:09,230 --> 00:01:13,190 Todavía está en beta, por lo menos la versión en la que yo estoy utilizándolo y puedo hacer ciertas 16 00:01:13,190 --> 00:01:15,110 cosas en Mongo, pero no puedo hacer todo. 17 00:01:16,020 --> 00:01:17,840 En fin de cuentas, no necesito hacer mucho. 18 00:01:17,840 --> 00:01:19,370 No es un curso de Mongo tampoco. 19 00:01:19,850 --> 00:01:22,160 Pero vamos a intentar hacer todo esto. 20 00:01:22,160 --> 00:01:28,550 Como son tres contenedores los que están involucrados en todo esto, idealmente, yo les diría vayamos 21 00:01:28,550 --> 00:01:29,170 uno por uno. 22 00:01:29,180 --> 00:01:31,250 Vayamos probando uno por uno, un paso a la vez. 23 00:01:31,250 --> 00:01:36,290 Porque si intentamos montar todos, o sea todos los contenedores de un solo, pueden haber muchos puntos 24 00:01:36,290 --> 00:01:36,710 de falla. 25 00:01:36,710 --> 00:01:41,030 Es decir, puede que Mongo Express esté mal configurado o puede que esté bien y Mongo esté fallando. 26 00:01:41,030 --> 00:01:42,500 Entonces ninguno de los dos funciona. 27 00:01:42,870 --> 00:01:47,360 Y luego quiero correr la aplicación, que depende de Mongo, pero tampoco funciona porque Mongo no está 28 00:01:47,360 --> 00:01:47,630 arriba. 29 00:01:47,630 --> 00:01:50,000 Entonces hay muchos puntos en los cuales esto puede salir mal. 30 00:01:51,090 --> 00:01:54,690 Nuevamente mi recomendación es que vayamos paso por paso, paso por paso. 31 00:01:54,930 --> 00:02:02,670 Y si ustedes abren en la hoja de atajos que yo les pasé en la sección del Docker con post. 32 00:02:03,950 --> 00:02:06,620 Se acordarán que nosotros teníamos aquí el depend on. 33 00:02:07,010 --> 00:02:13,280 Esto es un buen tip para indicarles a ustedes que este no sería nuestro primer contenedor, que vamos 34 00:02:13,280 --> 00:02:17,690 a levantar, nuestra primera imagen que vamos a levantar en el contenedor empezaríamos. 35 00:02:17,960 --> 00:02:22,940 En este momento yo no sé cual es, yo no sé cual es la primera porque lo vamos a empezar a crear todo, 36 00:02:22,940 --> 00:02:28,340 pero cuando ustedes miren un caso así, pueden empezar a hacer pruebas con cada uno de los contenedores 37 00:02:28,340 --> 00:02:29,890 que no tienen ningún depend. 38 00:02:30,020 --> 00:02:34,340 ON siempre va a haber uno, que es el punto inicial en el cual no depende de ningún otro. 39 00:02:34,850 --> 00:02:36,920 Ok, entonces vamos a comenzar este ejercicio. 40 00:02:36,920 --> 00:02:40,370 Vámonos a nuestro escritorio, hagan doble clic en la carpeta de Docker. 41 00:02:40,370 --> 00:02:46,340 Si no tienen ninguna creen voy a crear un nuevo archivo que se llame Pokemon App dentro de Pokemon App. 42 00:02:46,340 --> 00:02:49,160 Voy a tomar el archivo y dejarlo caer en Visual Studio Code. 43 00:02:49,280 --> 00:02:50,960 Vamos a ser un más grande. 44 00:02:52,090 --> 00:02:52,390 Ok? 45 00:02:53,080 --> 00:02:59,050 Y aquí también les voy a explicar cómo utilizar variables de entorno en el post file, que es bien sencillo, 46 00:02:59,050 --> 00:03:02,710 pero usualmente también tiene su e sus truquitos. 47 00:03:02,710 --> 00:03:09,390 No voy a presionar el botón para crear un nuevo archivo y voy a crear el Docker con post. 48 00:03:09,820 --> 00:03:15,880 Lo llamo y también voy a crear un archivo punto y MB que es de variables de entorno. 49 00:03:16,210 --> 00:03:21,520 Usualmente las variables de entorno no se suben a los repositorios porque aquí están nuestras configuraciones 50 00:03:21,520 --> 00:03:27,070 y nuestras credenciales, por decirlo así, pero ya hablaremos más al respecto de eso. 51 00:03:28,450 --> 00:03:33,700 El punto bien es el mismo que nosotros ya estamos acostumbrados a trabajar en otro tipo de aplicaciones 52 00:03:33,940 --> 00:03:40,420 y la ventaja es que el Docker post ya viene por defecto leyendo los archivos de ambiente que se encuentran 53 00:03:40,420 --> 00:03:42,760 en el mismo nivel de nuestro Docker Campus Fire. 54 00:03:42,970 --> 00:03:44,380 Entonces no tenemos que hacer mucho. 55 00:03:45,220 --> 00:03:53,110 Ok, voy a cerrar esto y empecemos nuestra primera parte del camino de montar estos tres contenedores 56 00:03:53,110 --> 00:03:54,730 empezando con MongoDB. 57 00:03:55,160 --> 00:03:58,150 Entonces, primero empecemos con la versión, la versión tres. 58 00:03:59,020 --> 00:04:01,780 Voy a correr esto por un lado y empecemos con los servicios. 59 00:04:02,230 --> 00:04:03,340 El nombre del servicio. 60 00:04:03,340 --> 00:04:07,080 Le voy a poner base de datos, pero ustedes le pueden poner cualquier nombre, pueden poner en un rango 61 00:04:07,090 --> 00:04:09,250 de V o etc lo que ustedes necesitan. 62 00:04:09,730 --> 00:04:11,110 Voy a presionar Enter Tab. 63 00:04:11,560 --> 00:04:14,280 Dentro de estos servicios, voy a ponerle el nombre. 64 00:04:14,300 --> 00:04:19,930 Mi contenedor Container Name va a ser igual a y podríamos poner como Pokemón de B. 65 00:04:21,120 --> 00:04:23,460 Ok, pokemon t v enter. 66 00:04:23,520 --> 00:04:29,160 La imagen que yo voy a utilizar es la imagen de Mongo en la versión 6.0 o el tag 6.0. 67 00:04:29,160 --> 00:04:32,160 Y por favor hagan la misma que yo o utilicemos la misma que yo. 68 00:04:33,390 --> 00:04:37,330 Luego voy a definir los volúmenes para los volúmenes. 69 00:04:37,350 --> 00:04:40,710 Voy a crearme uno que se llama Poke Bol o algo así. 70 00:04:40,780 --> 00:04:46,740 Está chistoso el nombre y esto va a apuntar a el pack del contenedor donde va a estar la base de datos 71 00:04:46,740 --> 00:04:47,670 que yo no sé cuál es. 72 00:04:47,670 --> 00:04:51,570 Se las voy a dejar de tarea para que la investiguen en este momento, pero denme un segundo. 73 00:04:51,790 --> 00:04:58,170 Al terminar esto, presionen enter y en la mera raíz de nuestro archivo vamos a escribir Valiums. 74 00:04:58,350 --> 00:04:59,670 Voy a poner Pokeball. 75 00:05:00,750 --> 00:05:04,320 Los puntos Enter external, los puntos Falls. 76 00:05:05,130 --> 00:05:12,180 Esto me va a permitir a mi fácilmente poder hacer el cambio si quiero que tome la el volumen externo 77 00:05:12,180 --> 00:05:14,970 o el volumen que ve el Docker con posts me va a crear. 78 00:05:14,970 --> 00:05:21,270 Si yo lo pongo en true, entonces va a buscar en el ambiente externo de este Docker fiel el volumen 79 00:05:21,270 --> 00:05:23,460 que ya lo habíamos visto como que lo creáramos manualmente. 80 00:05:23,880 --> 00:05:28,830 Si yo lo pongo en false, entonces lo que va a pasar es que cuando yo ejecute este archivo mediante 81 00:05:28,830 --> 00:05:34,620 el docker con post up, va a revisar que tenemos estos volúmenes y va a crear el volumen para este Docker. 82 00:05:34,620 --> 00:05:35,400 Compost fire. 83 00:05:36,240 --> 00:05:37,730 Ok, tarea. 84 00:05:37,800 --> 00:05:43,410 Necesito que ustedes averigüen cual es el paso donde MongoDB graba la información. 85 00:05:43,410 --> 00:05:45,120 Para eso ustedes van a venir aquí. 86 00:05:45,290 --> 00:05:51,990 Va a buscar la imagen oficial de Mongo y por algún lado de todo este documento, por algún lado de todo 87 00:05:51,990 --> 00:05:55,020 esto esta la información del país donde se graba. 88 00:05:55,440 --> 00:06:00,720 Ok, recuerden que tiene que empezar con Slash y por ahí va, entonces supongo le pasa el video, investiguen 89 00:06:00,720 --> 00:06:05,430 donde esta esto y yo regreso con la solución en esta misma clase de unos segundos, pero intenten hacer 90 00:06:05,430 --> 00:06:07,110 esta investigación por ustedes mismos. 91 00:06:07,110 --> 00:06:07,620 Pasa allá. 92 00:06:11,520 --> 00:06:12,630 Ok, Lo lograron hacer? 93 00:06:12,660 --> 00:06:13,320 Espero que sí. 94 00:06:13,320 --> 00:06:15,180 Y si no, pues resolvamos esto juntos. 95 00:06:15,210 --> 00:06:20,010 Usualmente lo que yo hago es buscar algo como la palabra Valium o algo así. 96 00:06:20,160 --> 00:06:20,580 Valium. 97 00:06:22,010 --> 00:06:23,670 Entonces busquemos en la palabra Valium. 98 00:06:23,690 --> 00:06:25,130 Voy a presionar Enter. 99 00:06:25,130 --> 00:06:25,730 Enter. 100 00:06:26,030 --> 00:06:27,620 Y por algún lado tiene que estar. 101 00:06:27,650 --> 00:06:28,210 Vamos a ver. 102 00:06:28,580 --> 00:06:30,400 Se puede crear un directorio. 103 00:06:30,410 --> 00:06:31,080 May on. 104 00:06:31,100 --> 00:06:32,930 Este no es run. 105 00:06:33,420 --> 00:06:33,710 Algo. 106 00:06:33,710 --> 00:06:35,180 Esto no es para esto. 107 00:06:35,180 --> 00:06:36,110 Es para manejar el volumen. 108 00:06:36,110 --> 00:06:37,280 Pero usted ya sabe que es esto. 109 00:06:37,280 --> 00:06:39,740 Esto es un Bin Valium desde el falleciste. 110 00:06:40,700 --> 00:06:41,630 Y aquí está. 111 00:06:41,660 --> 00:06:42,560 Data DB. 112 00:06:42,980 --> 00:06:43,970 Ahí lo tenemos. 113 00:06:44,360 --> 00:06:48,980 Y también ustedes pueden ver que también se crea el archivo de configuración por ahí, por ese lugar. 114 00:06:49,820 --> 00:06:50,180 En fin. 115 00:06:50,180 --> 00:06:52,610 Pero este es el que a mí me está interesando. 116 00:06:52,710 --> 00:06:53,930 Entonces lo voy a pegar por ahí. 117 00:06:54,440 --> 00:06:54,870 Excelente. 118 00:06:54,890 --> 00:06:56,750 Ya con eso vamos a estar grabando. 119 00:06:56,750 --> 00:06:58,670 Todo lo que sucede en la base de datos va a ser persistente. 120 00:06:59,570 --> 00:07:00,290 Voy a venir acá. 121 00:07:00,650 --> 00:07:05,600 Los puertos no son necesarios, no los voy a, lo voy a poner temporalmente, pero después los voy a 122 00:07:05,600 --> 00:07:10,190 quitar porque solo quiero que la aplicación y los que están en la red puedan ver la base de datos, 123 00:07:10,190 --> 00:07:11,300 no el mundo exterior. 124 00:07:11,570 --> 00:07:16,040 Pero por ahora vamos a hacer una prueba de conexión, así que voy a exponer el puerto 27 cero 17, que 125 00:07:16,040 --> 00:07:22,150 es el puerto que expone Mongo con el puerto 27 cero 17 de El contenedor de Mongo. 126 00:07:22,160 --> 00:07:22,850 Este es mi puerto. 127 00:07:22,850 --> 00:07:23,900 Y ese es el puerto de Mongo. 128 00:07:24,990 --> 00:07:29,250 Ahora, adicionalmente, lo voy a dejar colocar aquí. 129 00:07:29,430 --> 00:07:33,450 Start in always start los puntos en always. 130 00:07:36,140 --> 00:07:41,120 Eso es útil cuando ustedes están trabajando con aplicaciones de múltiples contenedores y posiblemente 131 00:07:41,120 --> 00:07:49,310 alguna se cae por alguna razón, o necesitamos volver a levantar cuando sucede algún problema o cuando 132 00:07:49,310 --> 00:07:52,990 una imagen se levanta, entonces que intente volverlo a hacer. 133 00:07:53,000 --> 00:07:57,590 Entonces, hay varias razones por las cuales Crystal Always funciona bastante bien en este caso. 134 00:07:58,160 --> 00:07:59,930 Entonces voy a grabar los cambios. 135 00:07:59,930 --> 00:08:03,170 Esto es básicamente todo lo que yo necesito para la configuración básica. 136 00:08:03,470 --> 00:08:08,720 Muy pronto voy a definir en la próxima clase otras variables de entorno para mi base de datos de Mongo. 137 00:08:08,720 --> 00:08:11,630 Por ejemplo, crearme una base de datos inicial. 138 00:08:11,930 --> 00:08:16,340 Voy a crearme también un par de usuarios y un par de cosas que he, o sea, un usuario root. 139 00:08:16,340 --> 00:08:22,410 Y también quiero que tengamos cierta autenticación porque por defecto voy a escribir OUT. 140 00:08:23,820 --> 00:08:28,350 Por defecto, Mongo viene sin ninguna autenticación. 141 00:08:28,350 --> 00:08:32,910 Aunque si el contenedor está protegido, es decir, no está expuesto, igual tenemos cierto paso de 142 00:08:32,910 --> 00:08:39,060 seguridad, pero igual voy a querer después poner unas credenciales y ejecutar el modo para hacer consultas 143 00:08:39,060 --> 00:08:40,200 de modo autenticado. 144 00:08:41,130 --> 00:08:42,990 Ok, pero ya lo vamos a hacer en la próxima clase. 145 00:08:42,990 --> 00:08:46,050 Pero esto es algo propio de Mongo, que no tiene mucho que ver ahí Docker. 146 00:08:46,200 --> 00:08:49,190 Pero siempre sería bueno que nuestras bases de datos están protegidas, no? 147 00:08:49,830 --> 00:08:51,540 Ok, pero no se preocupe mucho por eso. 148 00:08:51,990 --> 00:08:54,640 Haremos los cambios e intentemos ejecutar esto. 149 00:08:54,660 --> 00:08:59,370 Le voy a pedir que lo hagamos con la PowerShell o terminal desde afuera para que podamos estar ejecutando 150 00:08:59,370 --> 00:09:02,520 estos comandos y fácilmente poder observar lo que sucede. 151 00:09:02,550 --> 00:09:07,980 Entonces vamos a hacer un cd y recuerden navegar a la carpeta de nuestro proyecto que sería Pokemon 152 00:09:08,010 --> 00:09:08,400 App. 153 00:09:08,430 --> 00:09:09,460 Lo dejamos caer aquí. 154 00:09:09,480 --> 00:09:12,960 Enter Docker con post up presionamos. 155 00:09:14,120 --> 00:09:15,290 Eso va a hacer varias cosas. 156 00:09:15,290 --> 00:09:21,200 Como yo no tengo la imagen de Mongo, específicamente la versión o el tag safe, entonces para hacer 157 00:09:21,200 --> 00:09:25,970 la descarga eso puede demorar un poco, porque la base de datos, a pesar de que está comprimida, las 158 00:09:25,970 --> 00:09:27,110 imágenes están comprimidas. 159 00:09:27,770 --> 00:09:29,990 A pesar de eso, puede demorar un poco. 160 00:09:30,620 --> 00:09:33,830 Entonces pueden irse a tomar un café mientras hacen la descarga y regresan. 161 00:09:34,310 --> 00:09:35,810 En mi caso, ya casi termina. 162 00:09:36,810 --> 00:09:42,680 Ya casi termina esta parte de la descarga y una vez se levanta, vamos a hacer una prueba de conexión 163 00:09:43,040 --> 00:09:48,350 que como todavía no hemos puesto ninguna regla y van a ver que ya está corriendo Mongo de B, tenemos 164 00:09:48,350 --> 00:09:49,970 este montón de logs, que eso está bien. 165 00:09:50,360 --> 00:09:51,800 Vamos a abrir Table Plus. 166 00:09:53,940 --> 00:09:54,210 Ok. 167 00:09:55,020 --> 00:09:57,060 Vamos a crear una nueva conexión. 168 00:09:57,450 --> 00:09:58,680 Seleccionemos Mongo. 169 00:09:58,680 --> 00:09:59,370 Crear. 170 00:10:00,340 --> 00:10:01,390 Y aquí van a ver el nombre. 171 00:10:01,390 --> 00:10:05,320 Voy a ponerle temporal porque debe o cualquier cosa. 172 00:10:05,920 --> 00:10:09,250 El URL viene con el protocolo de Mongo de las islas. 173 00:10:09,340 --> 00:10:14,920 Viene el local host, el puerto, seguido de en este caso alguna base de datos, pero por ahora lo único 174 00:10:14,920 --> 00:10:19,450 que vamos a hacer es escribir Mongo DB que eso sería nuestro protocolo. 175 00:10:19,450 --> 00:10:26,440 Dos puntos y Slash, Slash y como nosotros estamos exponiendo el puerto, tenemos acceso al local host 176 00:10:26,440 --> 00:10:34,930 en nuestro equipo, el puerto que tenemos habilitado por defecto, cual es el puerto es el 27 cero 17 177 00:10:35,290 --> 00:10:37,030 y hagamos el test de conexión. 178 00:10:37,270 --> 00:10:38,860 Vamos a ver que aquí se movió a algo. 179 00:10:39,690 --> 00:10:39,830 Ven? 180 00:10:40,110 --> 00:10:46,300 Cada vez que yo toco es porque la conexión se realiza, puedo darle guardar, puedo ingresar, presionar, 181 00:10:46,300 --> 00:10:50,920 control R Tratar de listar las bases de datos y estas son las bases de datos que nosotros tenemos por 182 00:10:50,920 --> 00:10:52,510 defecto an config y local. 183 00:10:52,930 --> 00:10:56,440 Si yo intento crear una nueva, esa opción no está soportada en estos momentos. 184 00:10:56,440 --> 00:11:00,700 Puede ser que con ustedes lo miren ya funcione, pero en este momento no, Pero de todos modos no necesito 185 00:11:00,700 --> 00:11:04,120 hacer eso, con que podamos ver esa base de datos es mas que suficiente y cierro. 186 00:11:05,110 --> 00:11:05,350 Ok. 187 00:11:05,800 --> 00:11:09,190 Eso significa que ya teníamos nuestra base de datos corriendo muy fácilmente. 188 00:11:09,220 --> 00:11:14,860 Voy a cancelar esto con Control C, y si ustedes quieren bajar o hacer la limpieza, porque recuerden 189 00:11:14,860 --> 00:11:23,260 que la parte de Docker y cuando yo lo cancelo con control, simplemente deja esto detenido. 190 00:11:23,260 --> 00:11:28,600 Pero si yo necesito limpiarlo, recuerden, sería Docker Compass Down y esto ya lo remueve. 191 00:11:29,080 --> 00:11:33,940 Ok, dejemos la clase hasta este punto y hagamos otras configuraciones adicionales y usemos esas variables 192 00:11:33,940 --> 00:11:35,350 de entorno que nosotros ya definimos. 193 00:11:35,350 --> 00:11:37,960 Bueno, por lo menos las creamos, pero todavía no estamos usando. 194 00:11:38,410 --> 00:11:40,030 Y hagamos esto en la próxima clase. 195 00:11:40,120 --> 00:11:40,360 Ok?
Compartir