Hay varias razones por las cuales ustedes van a querer reconstruir las imágenes.
Una de ellas es que nos equivocaremos a la hora de hacer algún paso de construcción.
O la más común es que cuando ya tenemos todo bien, después viene una actualización y tenemos que hacer
cada segundo, cada cinco segundos, inicio de la aplicación o algo así.
Entonces puede ser que ustedes necesitan hacer cambios en su código, ya sea cambios en el código o
en cualquier parte del mismo, o bien que nosotros tengamos que hacer alguna corrección aquí.
Esos son los dos casos más comunes.
Entonces gánense los cambios y vamos a ver qué pasa ahora para volver a hacer la construcción.
Presionar la tecla direccional arriba un par de veces hasta que encuentren el comando de Dockers, al
menos con un ticker.
Y le voy a poner exactamente el mismo tag.
Ok, presionen Enter.
Van a ver que aquí va a pasar varias cosas interesantes.
Busquen los pasos de la imagen de Tal.
Ahí empieza a cargar el paso dos de cuatro Working Directory y Pepe dice que está en cash porque.
Este paso como tal es exactamente igual al paso anterior, porque inclusive A.C está en la misma posición,
es el mismo layer exactamente el mismo, entonces por eso lo puede usar del catch y eso hace un paso
un poco más rápido.
Luego el paso tres y cuatro se vuelven a ejecutar porque aquí hubo un cambio.
También podría ser que si ustedes vienen y dicen digan saben qué?
La verdad es que yo puedo venir aquí y únicamente mover el paquete JSON.
Este paso que estoy haciendo acá va a mantenerse en caché y luego puedo mover, quitar esto de acá y
únicamente si hay cambios en el package JSON.
Ahí es donde se va a volver a ejecutar ese layer.
Y si no hay cambios en el paquete, entonces por lo menos van a empezar a ejecutar únicamente de aquí
para abajo.
Ahora, otra cosa que podríamos ver puede ser que nosotros queramos mover esta imagen aquí arriba o
este paso, mejor dicho aquí arriba.
Y esto va a ser de que si no hay ningún cambio en el paquete JSON, entonces inmediatamente haga el
NP mixto, y si no hay ningún cambio en el npm install, entonces ahí siempre va a usar ese mismo caché
y únicamente si hay cambios, en este caso mi aplicación.
Únicamente estas dos capas son las que se van a volver a ejecutar o a construir.
Ahora vemos los cambios, volvemos a hacer el Docker Bill, presionamos Enter y ahora cambio esto un
poco.
Vamos a ver, entonces tenemos que el paso uno de cinco toma la imagen, el paso dos estaban caché exactamente
el mismo, tres copiando las dependencias cuatro y cinco.
Ok, si yo vuelvo a ejecutar esto, vamos a ver que el resultado va a ser un poquito diferente.
Me dice Working Directory desde el caché porque ya es el mismo paso.
No hubo cambios en el paquete.
Jason va a usar exactamente lo mismo.
Luego viene el run npm install, que es exactamente el mismo.
Esto se lo puede mantener ahí.
Luego en el paso de copiar mi aplicación y luego hace exportar los leyes.
Ahora, si nosotros volvemos a hacer un cambio cada cinco segundos, dos puntos, espacio grande los
cambios y hacemos una pequeña modificación en nuestra aplicación.
Si yo regreso aquí a ejecutar nuevamente el cron ticker o el proceso de construcción del crónica, presiono
Enter.
Van a ver que acá el paso que se volví a ejecutar es el cinco y obviamente los subsiguientes de él.
Es decir, si hubiera más pasos después de eso, eso se volvería a ejecutar, porque ese layer puede
aplicar cambios en los siguientes, pero todos los anteriores vienen desde el caché, lo cual es bastante
útil.
Ahora, otra consideración que nosotros tenemos en este punto si yo hago un Docker image ls para listar
los todos van a ver que aquí va a pasar cosas interesantes.
Vamos a ver que tenemos este lares y tenemos otro montón de imágenes que ya no tienen ese nombre y ya
no tienen el tag de lugares y eso podría llegar a ser un problema, pero la verdad es que todas estas
imágenes son versiones anteriores, una que yo grabé hace 26 minutos, ese 432 y la que acabo de hacer.
El problema que nosotros tenemos con estas imágenes es que primeramente, como no están identificadas,
yo no sé cuál es, no sé que versión es, no sé.
O sea, hay muchas cosas que van a ir creando ahí como basura.
Entonces aquí es donde nosotros ya tenemos que empezar a ponerles una nomenclatura a nuestras imágenes.
Por ejemplo, yo sé que en este momento, cuando yo llame la construcción de esta imagen, esta imagen
tiene el tag de cron ticker y como yo no le puse el 2.3, entonces esta es el nuevo latest.
Espero que tenga sentido.
Lo que acabo de hacer es el nuevo lay, entonces yo perfectamente puedo ponerle alguna etiqueta aquí,
pero eso volvería a hacer la construcción, aunque también lo voy a hacer muy eficiente.
Por ejemplo, esta va a ser la versión uno punto 0.0.
Yo no controlé Enter, hace el mismo procedimiento, todo está en caché y si hago Docker, Images o
Docker y Meche ls van a notar que aquí ahora tenemos el cron ticker.
Como leres y el uno punto 0.0 y son exactamente iguales.
Es la misma imagen.
También nosotros podríamos obviar volver a hacer el proceso de construcción simplemente renombrado una
etiqueta como cómo hacemos ese cambio de nombre?
Nuevamente, eso es una tarea muy común que yo les dejo a ustedes en la primera página del archivo de
Atajos.
Vamos a ver, tenemos Docker Image tag.
Cuál es la imagen con el tag que ustedes quieren nombrar a la nueva imagen que ustedes quieren nombrar
con el tag.
Así de fácil es.
Y eso es un comando muy, muy muy muy común.
Antes se hacía de esta manera y también sigue siendo permitida.
Pero realmente deberíamos de hacer esta de aquí.
Docker Image tag y viene el source.
Y cuál es el target Docker Image LS Entonces digamos que este cron ticket uno punto 0.0 va a ser conocido
como versión conejo.
Una cosa así o versión que sé yo, detalles o cualquier otro nombre que ustedes quieran darle, le pueden
poner tags x cantidad de tags y ustedes pueden seguir las prácticas que se siguen en muchos otros,
en otras imágenes allá afuera en Docker.
Entonces nuevamente lo que tendríamos que hacer es Docker Image tag.
Cuál es la imagen y el tag que quiero renombrar?
Digamos que sea este de aquí cron ticker.
Si ustedes no le ponen nada, o sea, si ustedes no le ponen ningún otro indicador, va a tomar el test.
Entonces quiero la versión uno punto 0.0 y ahora se va a llamar Cron Ticker.
Dos puntos a Buffalo o algo así.
No sé.
Punto.
Perdón.
Nada más.
Perdón.
Entonces sería así.
Ahora quiero que la versión 1.1 también sea conocido como Buffalo.
Pero yo no controlé Enter.
Y hagamos nuevamente el Docker y Match LS y vamos a notar que ahora tenemos el tag Buffalo, el cual
también apunta a la misma imagen.
Heidy.
Ahora, qué tal si nosotros venimos y hacemos un nuevo cambio?
Por ejemplo, ahora dice segundos cada segundo, cinco o cada digamos que múltiplo de cinco TIC, cada
múltiplo de cinco.
Entonces hicimos un cambio aquí reconstruyamos la imagen.
Entonces Flecha direccional arriba se encuentra en el Docker Build.
Podemos ponerle el tag o remover el tag porque ahora este es el nuevo lay o de una vez ponerle el indicador.
Voy a presionar enter para que esto construya la imagen.
Perfecto.
Docker Image ls Y ahora tenemos un nuevo Layret que tiene un Haití diferente, pero las demás el cron
ticker en la versión 1.0 se mantiene.
El cron ticker Buffalo también se mantiene y tenemos un nuevo latest.
Entonces, en este momento lo que yo le recomendaría es que cuando ustedes hacen una nota que saben
que tienen que mantenerlo, cambie, moldee el nombre.
Ahora podemos cambiarle de la versión uno punto 0.0.
En este caso quiero el Layret, o bien simplemente lo obvian y eso significaría lo mismo.
Ahora se va a llamar, qué sé yo, Castor.
Presionen Enter nuevamente Docker Image LLC y aquí tenemos nuestras versiones.
Esto es algo solo para hacer referencia, como hizo Android con su KitKat, con su Oreo, con su Ice
Cream Sandwich.
Todo eso es exactamente lo mismo, como que nosotros hubiéramos puesto sus nombres aquí y seguramente
esas versiones también tenían sus imágenes por decir algo en las cuales tenían esos tags.
Y perfecto.
Por ahora ya estamos listos para hacer lo que queramos con esos tags.
Si quisiéramos correr, por ejemplo, la última versión, que es la versión Castor, entonces Docker
container run viene.
El nombre de nuestra imagen sería con un ticker, dos puntos Castor.
Y presionamos controlar para ejecutarlo.
Y aquí tenemos iniciada la aplicación.
Se empieza a ejecutar cada segundo.
Cinco.
Deberíamos de ver cada múltiplo de cinco.
Pero si ahora queremos montar la versión Buffalo, entonces control C cancelemos esto.
Bueno, debería cancelarse con control C image ls o Docker container LS y Docker container RM forzadamente.
El 14 Perfecto.
Entonces aquí ya se canceló.
Y ahora montemos.
Ya no va a ser la versión castor.
Montemos la versión uno punto 0.0, la cual, en vez de decir dos de cada cinco, tenía el texto que
decía cada cinco segundos.
Ven?
Que interesante.
Y aprendimos a nombrarlas a más o menos.
Manejar un orden en los tags, que eso es enteramente discusión de ustedes.
Y eso va creando nuestro historial, lo cual es muy, muy, muy interesante.
Presionen como sea para cancelar y si les pasa lo mismo que se les queda pegado lo que el LS y cancelemos
esto con el 470 perfecto, dejemoslo hasta ese punto y en la siguiente clase que les parece si llevamos
esto más allá y subimos nuestra imagen a un repositorio en la nube?
Así que los veo en el próximo video.