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,710 --> 00:00:09,040 Es momento de comenzar nuestro camino en la creación de imágenes. 2 00:00:09,370 --> 00:00:11,260 El proceso de creación de una imagen. 3 00:00:11,260 --> 00:00:16,720 La verdad es que tiene un nombre bien interesante, porque lo que vamos a querer hacer para construir 4 00:00:16,720 --> 00:00:21,970 una imagen es obviamente tener algún código fuente o alguna aplicación que nosotros queremos localizar. 5 00:00:22,150 --> 00:00:22,930 Y que es eso? 6 00:00:22,970 --> 00:00:27,540 Localizar no es más que construir una imagen basado en nuestro código. 7 00:00:27,550 --> 00:00:28,330 Eso es básicamente. 8 00:00:28,330 --> 00:00:31,450 Pero aquí también ustedes tienen varias descripciones que yo les puse en el glosario. 9 00:00:31,930 --> 00:00:36,220 Por ejemplo, realizar una aplicación es el proceso de tomar un código fuente, generar una imagen lista 10 00:00:36,220 --> 00:00:38,170 para montar y correrla en un contenedor. 11 00:00:38,500 --> 00:00:41,800 Para lograr esto ocupamos crear un archivo llamado Docker File. 12 00:00:41,890 --> 00:00:45,910 El Docker file no es más que un archivo de texto con las instrucciones que nosotros le vamos a decir 13 00:00:45,940 --> 00:00:48,340 a Docker para que construya esa imagen. 14 00:00:48,700 --> 00:00:51,740 Se puede ver como un blueprint o un plano para su construcción. 15 00:00:51,760 --> 00:00:58,030 Si ustedes hacen clic aquí, nos lleva a la documentación oficial de Docker para que puedan leer más 16 00:00:58,030 --> 00:00:58,750 al respecto. 17 00:00:59,020 --> 00:01:00,880 Porque este es un tema bastante amplio. 18 00:01:00,880 --> 00:01:06,130 Hay muchas cosas que podemos hacer y esto también tiende a ser algo abrumador para las personas que 19 00:01:06,130 --> 00:01:07,180 ingresan por primera vez. 20 00:01:07,180 --> 00:01:10,480 Y es algo difícil de tratar de comprender todo de un solo. 21 00:01:11,260 --> 00:01:16,630 Es decir, muchas veces las personas lo que hacen es ok, bueno, este es el Docker file, leélo, cámbialo, 22 00:01:16,630 --> 00:01:18,700 modificarlo y uno dice bueno, y esto qué es? 23 00:01:19,090 --> 00:01:25,360 Si nosotros analizamos, por ejemplo, otras imágenes, digamos la de PostgreSQL, no hace falta que 24 00:01:25,360 --> 00:01:28,720 vengan, no hace falta que vengan aquí, solo es una explicación. 25 00:01:29,020 --> 00:01:33,580 Estas son las capas, porque cada paso que ustedes van a ver aquí es una instrucción que vamos a colocar 26 00:01:33,580 --> 00:01:34,480 en el Docker File. 27 00:01:34,960 --> 00:01:40,060 Adicionalmente, cada una de estas estos pasos que estamos viendo aquí, por ejemplo, al añadir un 28 00:01:40,060 --> 00:01:44,950 archivo, un comando bash, luego se ejecuta esta línea y así sucesivamente. 29 00:01:44,950 --> 00:01:48,040 Cada una de esas líneas va creando lo que se conoce como layers. 30 00:01:48,460 --> 00:01:53,440 No sé si ustedes han visto y yo lo había mencionado, que cuando estamos descargando a una imagen lo 31 00:01:53,440 --> 00:01:54,730 que se descargan son layers. 32 00:01:54,760 --> 00:02:00,220 Esos layers van a permitir su reutilización en el caso de que otra imagen usar al mismo layer, entonces 33 00:02:00,220 --> 00:02:03,370 va a permitirnos reutilizarlo y es bastante útil. 34 00:02:03,370 --> 00:02:04,690 Ya vamos a hablar más al respecto. 35 00:02:04,690 --> 00:02:10,180 Pero todos estos pasos van a haber Configuración de variables de entorno, ejecución de un shell, variables 36 00:02:10,180 --> 00:02:16,000 de entorno, definición de un volumen Copiar información de un lado a otro, un entry point, la exposición 37 00:02:16,000 --> 00:02:23,230 del puerto, el comando de ejecución, todo estos, todo esto son una serie de pasos para la creación 38 00:02:23,230 --> 00:02:25,300 y ejecución de esta imagen. 39 00:02:25,570 --> 00:02:31,180 Entonces, yo no pretendo que ustedes el día 0 se memoricen y sepan que hace todo esto, porque eso 40 00:02:31,180 --> 00:02:31,870 no pasa así. 41 00:02:32,380 --> 00:02:36,310 Si es la primera vez que ustedes van a ver un perfil y si alguien les pasó algún docker fail, ustedes 42 00:02:36,310 --> 00:02:39,580 se van a asustar porque van a ver todo ese montón de comandos y no tienen la menor idea que hace. 43 00:02:39,580 --> 00:02:40,080 Qué cosa? 44 00:02:40,090 --> 00:02:40,540 Entonces? 45 00:02:40,900 --> 00:02:46,510 Mi objetivo es que empecemos desde absoluto cero comprendiendo primero cómo funciona una pequeña aplicación 46 00:02:46,510 --> 00:02:48,730 y luego vamos a ir creciendo en complejidad. 47 00:02:48,790 --> 00:02:52,150 Entonces vamos a crear un Docker, un Docker fácil, súper sencillo. 48 00:02:53,220 --> 00:02:57,210 Y en base a ese perfil vamos a ir aprendiendo más y más y más y más y más. 49 00:02:57,210 --> 00:03:00,150 Entonces vamos a empezar de lo más básico y luego vamos creciendo. 50 00:03:00,150 --> 00:03:04,710 Para las personas que ya saben sobre Docker, posiblemente van a sentir esto bastante básico, pero 51 00:03:04,710 --> 00:03:10,740 eventualmente vamos a llegar a hacer inclusive construcciones en múltiples pasos, entre otras cosas, 52 00:03:10,740 --> 00:03:15,390 y después vamos a llegar al punto de crear diferentes imágenes para diferentes arquitecturas. 53 00:03:15,420 --> 00:03:19,950 Entonces yo sé que eso de arquitectura, de procesadores, yo sé que es bastante complicado todo esto, 54 00:03:19,950 --> 00:03:21,720 pero nuevamente vamos a ir caminando. 55 00:03:22,050 --> 00:03:27,330 Lo primero que les voy a pedir es que ocupamos crear una aplicación para que nos sirva para obviamente 56 00:03:27,870 --> 00:03:28,540 hacer algo, no? 57 00:03:28,560 --> 00:03:30,750 Porque voy a crear una imagen y la imagen tiene que hacer algo. 58 00:03:30,810 --> 00:03:32,010 Entonces eso es lo que quiero hacer. 59 00:03:32,280 --> 00:03:36,720 Creemos un archivo en nuestra carpeta de Docker que se va a llamar Cron ticker. 60 00:03:36,940 --> 00:03:38,220 Ya van a ver porque es Chrome. 61 00:03:38,520 --> 00:03:39,080 Por qué Chrome? 62 00:03:39,870 --> 00:03:42,570 Tomen esta carpeta y ábranla en Visual Studio Code. 63 00:03:43,730 --> 00:03:44,300 Y aquí adentro. 64 00:03:44,300 --> 00:03:45,170 Voy a quedarme. 65 00:03:45,350 --> 00:03:48,960 Bueno, todavía no vamos a abrir la terminal también antes de hacer cualquier cosa. 66 00:03:48,980 --> 00:03:52,040 Ahora se la terminal, la de Windows, lo que sea. 67 00:03:52,040 --> 00:03:54,320 Y naveguemos a la carpeta de este proyecto. 68 00:03:55,420 --> 00:03:56,590 Que se llama Crowne Ticker. 69 00:03:56,620 --> 00:03:57,490 Dejémoslo caer aquí. 70 00:03:58,000 --> 00:03:58,480 Enter. 71 00:03:59,020 --> 00:04:02,650 Y recuerden que nosotros tenemos instalado no de manera global en nuestro equipo. 72 00:04:02,650 --> 00:04:07,110 Nosotros lo instalamos en el inicio del curso y se acuerda que yo le dije vamos a usar uno. 73 00:04:07,120 --> 00:04:13,090 No tienen que ser expertos en no necesita saber Node no es un curso de Node, pero obviamente quiero 74 00:04:13,090 --> 00:04:17,470 que usemos esto para crear unas aplicaciones rápidas y sencillas y correr otras cosas. 75 00:04:17,950 --> 00:04:22,030 Entonces tiene que tener instalado Node en su computadora, no como una imagen, se podría ser como 76 00:04:22,030 --> 00:04:23,590 una imagen, pero no quiero hacerlo así. 77 00:04:23,740 --> 00:04:24,010 Ok. 78 00:04:24,490 --> 00:04:28,640 Entonces tengan instalado en Node escriban el siguiente comando npm init. 79 00:04:28,660 --> 00:04:35,980 Obviamente en esta carpeta de crónica no presionen enter y presionen enter enter hasta que cree este 80 00:04:35,980 --> 00:04:37,780 archivo llamado el package JSON. 81 00:04:38,820 --> 00:04:43,950 Si regresamos a el proyecto en el estudio van a ver que aquí ya aparece el paquete JSON con el nombre 82 00:04:43,950 --> 00:04:50,550 de nuestra nuestra aplicación o el nombre del paquete y la configuración básica de nuestra aplicación. 83 00:04:50,790 --> 00:04:52,620 No hicimos nada, todavía no tenemos nada. 84 00:04:53,130 --> 00:04:58,980 Dentro de este archivo voy a crearme una uno nuevo o dentro de escritorio un nuevo archivo llamado App 85 00:04:59,160 --> 00:05:03,620 JS en el cual voy a poner un log que diga Hola mundo, punto y coma. 86 00:05:03,630 --> 00:05:06,780 Grabe los cambios para ejecutar esta aplicación. 87 00:05:06,780 --> 00:05:11,490 Nosotros vamos a irnos a la terminal y escribamos node espacio app. 88 00:05:11,790 --> 00:05:15,270 JS Ok, el js es opcional, pero voy a ponérselo a PPP. 89 00:05:15,450 --> 00:05:18,900 JS Al presionar ENTER se va a ejecutar ese archivo y tenemos nuestro. 90 00:05:18,900 --> 00:05:24,060 Hola mundo, súper sencillo, bastante bastante auto explicado espero. 91 00:05:24,600 --> 00:05:29,490 También nosotros podemos venir aquí en la parte de los scripts, poner una coma al final y escribir 92 00:05:29,490 --> 00:05:30,210 start. 93 00:05:30,600 --> 00:05:34,680 Asegurense ponerlo entre comillas y vamos a mandar a llamar el node espacio app. 94 00:05:34,860 --> 00:05:39,150 JS y graves los cambios con definir este script. 95 00:05:39,150 --> 00:05:44,970 Lo que le estoy diciendo ahora es que mi aplicación va a tener este comando que va a iniciar lo que 96 00:05:44,970 --> 00:05:47,250 es lo que acabo yo de ejecutar, que es app. 97 00:05:47,460 --> 00:05:53,490 Aquí yo después puedo agregar ciertas banderas variables de entorno e x cantidad de cosas que yo puedo 98 00:05:53,490 --> 00:05:55,970 hacer aquí, pero por ahora dejémoslo con el start. 99 00:05:55,980 --> 00:06:01,020 Si yo quiero llamar ese comando, voy a hacer npm de new package manager start. 100 00:06:01,560 --> 00:06:03,990 Esto va a mandar a llamar este script. 101 00:06:04,880 --> 00:06:06,950 Que se llama estar en el cual corre nuestro Hola mundo! 102 00:06:07,520 --> 00:06:09,650 Ok, hasta este momento espero que nadie se esté quedando. 103 00:06:09,920 --> 00:06:14,270 Bastante sencillo, pero obviamente hacer esta aplicación, eso que tenemos aquí es súper aburrido este. 104 00:06:14,300 --> 00:06:15,950 Hola mundo, no quiero hacer eso. 105 00:06:15,950 --> 00:06:20,100 Si les voy a pedir que por favor vayan a material adjunto y yo les dejo. 106 00:06:20,330 --> 00:06:26,900 Es un enlace que los lleva a este paquete que se llama Cron, que es muy similar a como funcionan las 107 00:06:26,900 --> 00:06:31,760 tareas programadas basado en diferentes horas, minutos y segundos. 108 00:06:31,760 --> 00:06:37,130 Es un proceso de Linux en el cual ustedes pueden programar que cada segundo suceda algo, cada minuto 109 00:06:37,130 --> 00:06:40,010 suceda algo, cada hora suceda algo, cada día de la semana suceda algo. 110 00:06:40,010 --> 00:06:43,820 Y esto es muy utilizado para hacer procedimientos, por ejemplo, procesos de sincronización. 111 00:06:43,850 --> 00:06:48,140 Ustedes quieren que cada segundo, cada minuto, cada hora, cada X cantidad de tiempo se ejecute un 112 00:06:48,140 --> 00:06:48,650 proceso. 113 00:06:49,070 --> 00:06:50,660 Esto es muy fácil de utilizar. 114 00:06:50,750 --> 00:06:54,590 Entonces van a ver que aquí hay un comando que dice npm store no crunch. 115 00:06:54,770 --> 00:06:57,050 Hagan clic aquí, lo copian. 116 00:06:57,290 --> 00:07:02,900 Vamos a regresar a nuestra terminal donde tenemos nuestro proyecto y van a pegar ese npm y no crunch 117 00:07:02,930 --> 00:07:04,610 es npm install not chrome. 118 00:07:04,610 --> 00:07:09,230 Presionen enter y esto va a descargar el paquete y lo va a colocar en nuestro proyecto. 119 00:07:09,230 --> 00:07:13,490 Van a notar que ahora aquí en la parte de las dependencias tenemos uno Crom, que es esta versión y 120 00:07:13,490 --> 00:07:18,380 también tenemos este archivo o directorio mejor dicho que se llama los modulos de Node en el cual contiene 121 00:07:18,380 --> 00:07:22,790 todo lo que yo necesito o lo que no creo necesita para poder ejecutarse. 122 00:07:23,730 --> 00:07:25,800 Ok, Voy a regresar a la app. 123 00:07:26,980 --> 00:07:28,750 Y navegador web también. 124 00:07:28,960 --> 00:07:34,150 Les voy a pedir que se copien este pequeño bloque de código que tiene, que es una definición del ejercicio, 125 00:07:34,150 --> 00:07:39,760 copien, lo revisemos a Visual Studio Code y en el app peguen ese código. 126 00:07:40,510 --> 00:07:42,370 Hagamos unas modificaciones. 127 00:07:42,370 --> 00:07:48,000 Aquí voy a escribir inicio aquí coloquen la cantidad de asteriscos que yo le voy a pedir. 128 00:07:48,010 --> 00:07:53,410 Es decir, van a poner 123456 asteriscos. 129 00:07:53,680 --> 00:08:00,880 Cada asterisco significa ya sea el primero, significa segundo minuto, hora del mes, día, el mes 130 00:08:00,880 --> 00:08:03,760 y día de la semana, y ahí pueden ver la definición del mismo. 131 00:08:04,360 --> 00:08:07,510 Yo quiero que esto se ejecute cada segundo. 132 00:08:07,510 --> 00:08:10,210 Entonces podría poner uno -59, por ejemplo. 133 00:08:10,900 --> 00:08:14,290 Y aquí tarea corriendo cada second, por ejemplo. 134 00:08:14,830 --> 00:08:18,550 Voy a grabar los cambios, voy a cambiar este bar por const, porque no debemos de estar usando VAR 135 00:08:18,880 --> 00:08:19,780 y lo dejamos así. 136 00:08:19,780 --> 00:08:20,770 Gánense los cambios. 137 00:08:20,800 --> 00:08:24,580 Ejecutemos nuevamente la aplicación mediante el npm start. 138 00:08:24,580 --> 00:08:29,860 Presione enter, inicia la aplicación y cada segundo va a estar emitiendo este mensaje. 139 00:08:29,890 --> 00:08:31,450 Cada segundo lo está emitiendo. 140 00:08:31,810 --> 00:08:35,560 Y esto es por ahora la aplicación que yo quiero que nosotros tengamos. 141 00:08:35,770 --> 00:08:42,310 Cancelen con control C Para finalizar este ejercicio, o sea para empezar a realizar la aplicación, 142 00:08:42,310 --> 00:08:47,830 yo quiero crearme una bandera que me diga cuántas veces se ha hecho un tick. 143 00:08:47,920 --> 00:08:55,450 Voy a cambiar esto y que diga tick cada cinco segundos y voy a colocar y voy a hacer la impresión aquí 144 00:08:55,450 --> 00:08:58,260 de mis tags la cantidad de veces. 145 00:08:58,270 --> 00:09:04,840 Luego voy a hacer times más, más para ir acumulando cada vez que se llama este proceso y segundos. 146 00:09:06,950 --> 00:09:12,290 Segundos y para que esto se imprima cada cinco segundos, o mejor dicho, que se ejecute cada segundo 147 00:09:12,290 --> 00:09:14,300 cinco, diez, 15 o 20, 25. 148 00:09:14,540 --> 00:09:15,980 Voy a dividir esto entre cinco. 149 00:09:16,640 --> 00:09:19,520 Yo sé que la sintaxis es algo rara, pero esto es propio de Cron. 150 00:09:20,060 --> 00:09:21,040 Gánense los cambios. 151 00:09:21,050 --> 00:09:22,100 Vamos a volverlo a ejecutar. 152 00:09:22,100 --> 00:09:22,880 Flecha de arriba. 153 00:09:22,880 --> 00:09:25,700 Presionamos Enter y esto se va a empezar a ejecutar. 154 00:09:25,700 --> 00:09:31,460 Va a imprimir nuestro mensaje cada segundo cinco cada segundo, diez cada segundo, 15 cada segundo. 155 00:09:31,460 --> 00:09:36,500 20 de el sistema del horario o del reloj del sistema operativo. 156 00:09:36,890 --> 00:09:38,480 Eso es lo que significa lo que estamos haciendo. 157 00:09:38,480 --> 00:09:42,950 No es cada cinco segundos, es en el segundo, cinco, en el segundo, diez en el segundo, 15 segundos. 158 00:09:42,950 --> 00:09:43,280 Twenty. 159 00:09:43,430 --> 00:09:43,910 No importa. 160 00:09:43,910 --> 00:09:45,830 Pero cada cinco segundos, podríamos decirlo. 161 00:09:45,830 --> 00:09:48,490 Tenemos nuestro tic y esta es nuestra aplicación. 162 00:09:48,500 --> 00:09:52,250 Imagino que más de uno va a poder notar algún uso bastante útil para esto. 163 00:09:52,460 --> 00:09:56,090 Por ejemplo, ustedes tienen un proceso que tienen que sincronizar cada cinco segundos o cada hora, 164 00:09:56,090 --> 00:09:58,130 cada minuto, o quieren ejecutar una tarea. 165 00:09:58,130 --> 00:10:05,360 Lo pueden hacer de esa manera y pueden crear tantas entradas de este itinerario como ustedes necesitan. 166 00:10:05,660 --> 00:10:06,820 Por ahora dejémoslo así. 167 00:10:06,830 --> 00:10:11,900 Cancelemos la aplicación con control C y nos vemos en el próximo vídeo donde vamos a empezar a revisar 168 00:10:11,900 --> 00:10:13,250 esta pequeña aplicación.
Compartir