En esta clase quiero que tengamos dos instancias de posgrado y van a ser versiones diferentes de posgrados
corriendo en nuestra misma computadora en un puerto diferente.
Eso es súper genial.
Y yo sé que más de uno va a decir bueno, pero eso para qué va a servir en la vida real?
Muchas veces puede que ustedes tengan que tener la misma instancia de la aplicación corriendo o diferentes
instancias de la base de datos corriendo para poder hacer alguna prueba o desarrollo, o inclusive hacer
deploy de versiones específicas de base de datos, especialmente cuando hay cambios mayores de base
de datos.
Usted no va a querer simplemente usar la última versión sin haberla probado.
Si su data va a funcionar como ustedes esperan.
En fin, vamos a hacer lo siguiente Docker Container run.
Y como quiero hacer esto en múltiples líneas, si yo estoy en la terminal de mago, SX y Linux, van
a presionar un back slash.
Si ustedes están en la PowerShell de Windows, es un back tick.
Y yo les dejo ustedes aquí también en el pdf de los atajos.
Aquí ustedes van a poder ver en la PowerShell que son back ticks.
Ok, busquen donde está su back y presionen enter y eso los lleva a la siguiente línea Menos, menos
name va a ser igual a pongámosle algo como PostgreSQL Alpha.
Vamos a presionar back back Slash Enter.
Vas a colocar la variable de entorno que va a ser PostgreSQL.
Escriba al igual que yo, password o mejor dicho, igual como está en la documentación va a ser igual
a mi pass uno va que slash enter.
Luego voy a poner de publish.
El puerto va a ser el 54 32.
Yo voy a usar el por defecto con el puerto 54 32, bajes las enter y usemos la versión de PostgreSQL
PostgreSQL.
Nada más.
Espero que nadie tenga la mala suerte de que cuando vuelvan a ejecutar este comando lo vuelva a descargar,
porque eso significaría que en el momento que ustedes hicieron la descarga anterior, hubo un nuevo,
una nueva publicación o una nueva versión de PostgreSQL, pero en este momento debería usar el.
Y esto también es otra de las razones por las cuales se recomienda buena práctica que ustedes siempre
establezcan el número de versión o el tag de la imagen que quieren utilizar, siempre en duro para evitar
cambios repentinos, porque puede ser que ya sea una versión mayor y actualizaron su aplicación y eso
no era lo que ustedes estaban deseando.
Regresan ahora a hacer el comando de Docker Container.
Ls van a ver que aquí está nuestra base a tus postres.
Tenemos el puerto conectado y podríamos intentar conectarnos con Table Plus de nuevo.
Esta desconexión ya no va a servir.
Entonces voy a hacer nuevamente una nueva conexión.
Postres de V.
Vamos a ponerle post o post gratis menos Alpha 54 32 localhost.
El user es password.
El password es May Paz uno.
Recuerden que nosotros le pusimos aquí cuando ejecutamos este comando es este pass uno.
Y voy a darle el test.
Ok?
Hey, significaría que ya nos pudimos conectar y.
Perfecto.
Voy a darle safe y esa conexión está bien.
Ahora vamos a usar una versión específica de PostgreSQL.
No hace falta que ustedes vengan aquí.
Pero todos estos tags es un histórico.
Aquí no se van a borrar ningunas versiones, por más viejas que sean, por más diez 20 años que tengan,
siempre van a quedarse aquí.
Entonces, digamos que vamos a usar una versión específica de postres.
Usemos la versión de postres con el Tag 14 menos a Alpha y 3.17.
Entonces, eso básicamente sería la versión 14 de PostgreSQL Alpine que hace la referencia a Linux 3.17,
la versión de Linux.
Entonces este es el tag que yo voy a utilizar.
Copien lo bueno.
Obviamente ustedes no lo van a tener en la mano porque puede ser que tengan que rolear mucho, pero
vengan aquí y van a poner el tag.
Después de postre se van a escribir dos puntos y peguen, mejor dicho, escriban esto de 14 menos alta
en 3.17 así como este oops oops oops.
Os tengo que hacerme scroll para abajo y regresemos aquí y ejecuten ese ese tag PostgreSQL, esa versión.
Presionen enter y esto va a ser la descarga local, que en mi caso yo yo ya la tenía, pero necesito
que ustedes resuelvan los conflictos que les está dando los errores en consola.
Por favor resuelvan los todos y después de hacer esta tarea deberían de ver aquí los dos contenedores
corriendo y en verde.
Tiene que corregir los errores.
Aquí van a pasarles varias cosas.
Lean los errores, lean los errores.
A la segunda instancia de post le van a poner el nombre de Beta y van a tener que hacer ciertos cambios.
También Estoy esperando que eso esté corriendo en el puerto 54 33 y que por acá me voy a conectar al
puerto.
54 33.
Y debería conectarme a la segunda instancia de PostgreSQL.
Entonces van a ponerle paz a este ejercicio.
La tarea es que corran una segunda instancia de PostgreSQL.
Obviamente este comando me está dando un conflicto por la misma razón que está aquí definido.
Entonces póngale pausa.
Mucha suerte.
Echen a andar esas dos instancias de PostgreSQL y mi solución en unos instantes.
Mucha suerte.
Pasa ahora.
Lo lograron hacer?
Espero que sí.
Y si no, pues resolvamos el problema nuevamente.
Si vuelvo a intentar ejecutar el comando, lean siempre los mensajes de error.
Me dicen que hay un conflicto.
El contenedor con el nombre post alfa ya está en el contenedor.
Con ese hash tienes que removerlo o renombrarlo.
Si quiero rehusar ese nombre a bueno, entonces tengo que ponerle el nombre en lugar de PostgreSQL Alpha.
Vamos a ponerle PostgreSQL Beta.
Voy a presionar Enter.
Y ahora tenemos otro error.
Me dice Error.
Vamos a buscarlo en el endpoint de Progress Beta tal.
Me dice que hacer el bind de localhost del puerto o la dirección cero punto 0.0 de mi local.
Dos 54 34 fallo porque el puerto ya esta a lo queire decir, ya esta alojado o ya esta asignado?
Creo que sería la palabra correcta.
Entonces esto también nos indica de que nosotros sólo podemos tener un puerto asignado a un contenedor.
Es decir, un puerto es una comunicación 1 a 1.
No puedo tener un mismo puerto escuchando diferentes puertos de otros contenedores.
Entonces les había pedido que este lo colocáramos en el puerto 34, 33 o 54 33 Pero de mi computadora
aquí si puede ser el mismo puerto, porque recuerden que son aislados y lo demás debería estar igual.
Voy a presionar Enter y me dice hay un error de conflicto.
Me dice que el puerto, que el contenedor con el nombre PostgreSQL ya está definido.
Pero que raro van a decir ustedes, pero yo no tengo.
O sea, yo no lo he levantado, pero en el momento en el que ustedes lo intenten van a ver que aquí
ya tienen ese contenedor.
Eso es como que OK, lo intentó hacer pero falló la parte del puerto, lo que significa de que este
de aquí yo lo tengo que remover para volverlo a crear.
Podemos borrarlo por aquí si ustedes desean.
Eso sería tan fácil.
Pero nuevamente tratemos de acostumbrarnos a trabajar con la consola.
Entonces Docker container ls van a ver que aquí sólo tengo el Alpha porque es el que está corriendo.
Ah, para mandar que me diga todos los contenedores tengo que buscar el beta, por eso la importancia
de los nombres y ese seis A ok lo que container R del seis A en mi caso Enter y ahora ya puedo volver
a ejecutar el comando de Docker container run name v password tal cosa Puerto 54 33 con el puerto 54
32 del contenedor tal versión de PostgreSQL.
Presiono enter, se levanta, regreso aquí y ya los vemos los dos corriendo.
Eso significaría que yo puedo venir acá y probar el puerto.
54 33, que es una instancia de post que sería el alfa y el beta sería el 54 33 y también responde correctamente.
Ok, podemos darle save, pueden borrar esta referencia que tenemos ahí y también les voy a pedir que
bajen ambos ambos contenedores y borren los con el comando de de los containers.
Ok?
Para ponerle pausa el video necesito que bajen ambos contenedores y lo remuevan los dos.
Bueno la verdad no hace falta que lo hagan con el punto, pueden hacerlo como ustedes quieran.
Les voy a enseñar otra técnica y pasan este momento.
Borren los dos mediante comando.
No lo hagan mediante el docker de esto, porque simplemente sería tocar esos dos botones.
Ok, pausa.
Hagan esta tarea.
Ok.
Lo lograron hacer?
Espero que sí.
Y si no removemos los mismos Docker Docker container ls Voy a ver que están activos.
Voy a puedo detener a ambos o removerlos a ambos de manera forzada como ustedes lo hayan querido hacer.
Docker Container RM y voy a hacerlo de manera forzada el seis 53 que sería este de aquí y luego el 88
y luego sería espacio el 88.
Entonces puedo mandar después del RM diferentes ideas de los contenedores, presiono Enter y ahí están
los dos.
Ya no tengo nada y nos vemos en el próximo vídeo.