En este momento queremos hablar sobre variables de entorno.
Como su nombre lo indica, son variables que existen en un entorno y entiéndase ese entorno, el contenedor
también.
Cuando estemos hablando sobre aplicaciones de múltiples contenedores, también podemos crear una variable
de entorno que sea global para cada uno de ellos, pero ya llegaremos en eso en su momento.
La variable de entorno son muy utilizadas cuando nosotros ocupamos mandar cierta configuración a la
hora de levantar un contenedor.
Particularmente si ustedes ven el pdf que le facilité y van a la parte de los volúmenes que yo sé que
todavía no hemos llegado a la parte de estos volúmenes, ni sabemos que es un volumen.
Pero quiero que ustedes observen que podemos mandar una variable cuando hacemos el Docker container
run.
Puedo mandar aquí el menos o menos menos y en mi.
Seguido del nombre de la variable de entorno.
Qué nombre de variable de entorno ustedes pueden poner lo que.
Bueno, hay varias formas.
Están las que están definidas por la imagen que ustedes quieren utilizar, y si ustedes crearon la imagen,
entonces básicamente las variables de entorno son las que ustedes están esperando en el código que están
creando en su imagen.
Ya vamos a hablar más adelante sobre la creación de imágenes, pero por ahora sólo estamos utilizando
imágenes creadas previamente.
Entonces simplemente mandamos el menos seguido del nombre de la variable de entorno, y eso es básicamente
todo lo que hay que hacer.
Vamos a probarlo.
Si ustedes se van a el material adjunto, tienen un enlace que lo lleva a v.n Docker puntocom.
Por favor, vengan aquí y escriban.
Escriban post gratis.
Los va a llevar a todos los resultados y usualmente siempre van a encontrar las que son oficiales,
o sea, imágenes oficiales al inicio, luego las verificadas y luego las soportadas, etcétera, etcétera,
y las open source.
Entonces, en este caso, cuando ustedes vean esta verde, pueden confiar en que esta es una imagen
oficial.
Estén seguros de que va a trabajar en su equipo.
Y aquí hay varios tags e informaciones que ya vamos a hablar al respecto.
Voy a hacer clic en esta imagen.
Si hablamos sobre la pestaña de los tags, van a notar que por defecto está el gris, el cual significaría
que es la última versión que está en la última edición de post.
Pero recuerden, esta ley es en imágenes que no son oficiales o imágenes que son de la comunidad.
No necesariamente significa eso mismo.
Sólo tengan presente eso.
Si ustedes van un poco más y abren este que dice más cinco, van a notar que aquí tenemos arquitecto.
Bueno, primero los sistemas operativos y luego la arquitectura.
Puede ser que ustedes se encuentren en unas computadoras con 64 o están en una m 64 y van a ver qué
arquitectura son soportadas para cada una de estas o de esta imagen.
Ustedes también van a poder correr, por ejemplo, si están en una computadora.
AM 64.
Perfectamente pueden correr una MB, solo que va a haber cierto protocolo de compatibilidad y puede
que la imagen no funciona a la velocidad esperada, pero igual lo van a poder ejecutar, lo cual sigue
siendo genial.
Ya vamos a hablar más de eso en futuras clases, no se preocupen, pero por ahora sí.
Yo quiero utilizar esta imagen de PostgreSQL.
Por ahora les voy a pedir por favor que toquen este botón y hagan el Docker pull post porque esto puede
demorar un rato, ya que esta imagen pesa 133 megas.
Entonces bueno, no pesa dependiendo de la arquitectura, porque esto lo vamos a ver nuestra consola.
Cuando esté la moto que es de esto, le va a decir cuál es la que nuestra computadora, cuál es la que
soporta, Entonces puede variar, pero digamos que más o menos va a ser una descarga de 140 megas.
Entonces vámonos a la terminal y hagamos ese Docker pull PostgreSQL por defecto.
Como yo no le estoy mandando ninguna variable o ningún tag, aquí, mejor dicho, por defecto va a tomar
el Layret, va a descargar cada uno de los layers de manera independiente.
Y esto es también algo que nos va a servir, porque si después viene una nueva versión, la cual también
usa el mismo layer, fácilmente va a reutilizar los layers.
Regresemos aquí al navegador web mientras ustedes también siguen descargando y vamos a la parte del
overview.
Cómo sé qué variables de entorno puedo utilizar?
Pues esto va a depender de la imagen que ustedes van a utilizar.
Usualmente en la misma documentación de la imagen debería de decirles a ustedes cómo y cómo es que ustedes
lo pueden configurar, cómo lo deben de usar y qué variables de entorno pueden configurar.
Si vamos por acá me dice iniciar una instancia de PostgreSQL, obviamente ustedes podrían ir a la página
de PostgreSQL, descargarla localmente en su equipo, hacer la instalación, pero mediante Docker es
tan fácil como que nosotros simplemente ejecutemos un comando.
De hecho, ni siquiera haría falta el pool porque este comando hace la descarga.
Pero aquí dice Docker run name que esto es para asignarle un nombre a nuestro contenedor que va a estar
corriendo esta imagen de PostgreSQL menos para ponerle el nombre de la variable de entorno que se va
a llamar password password y le va a poner my secret password menos de detalle.
Y luego viene el nombre de la imagen, que por defecto, como no se especifica ninguna, sería la ley.
Si quieren pueden copiarse todo este comando.
Obviamente aquí ya tienen que esperar hasta que termine.
Y ahora podríamos pegarlo y simplemente recuerden Docker, container, container run.
Le va a poner este nombre y ya lo vamos a ver.
Son passwords menos variables, entorno my secret, password menos de PostgreSQL.
Presiono Enter y rápidamente ya se montó la base de datos y ya está corriendo.
Nuevamente si hago un docker container ls van a ver que aquí tengo mi imagen de postres y por defecto
el puerto que está exponiendo PostgreSQL es el puerto 54 32.
Ok, pero desafortunadamente yo no tengo mi computadora escuchando el puerto 54 32, por lo cual yo
no me voy a poder conectar a él.
Pero eso está bien, Eso está bien.
Era parte del objetivo, pero así de fácil.
Literalmente tenemos una instancia de postres corriendo en nuestro equipo que está usando la última
versión.
Vamos a regresar aquí a la documentación de postres.
Vamos a la parte de los tags.
Van a ver que hay muchos tags relacionados a diferentes versiones de PostgreSQL.
Por ejemplo, tenemos el 15.1 Alpine que Alpine también se los dejé en el glosario.
Nuevamente, Alpine es una versión de Linux segura, super ligera, que está enfocada obviamente en
los aspectos de seguridad, pero también muchas imágenes de Docker que ocupan un Linux están basadas
en Alpine porque no incrementa.
O sea, es un Linux puro, puramente, digamos que lo mínimo necesario para correr, pero a la vez con
todas las medidas de seguridad.
Por eso van a ver que siempre hay muchas imágenes que dicen Alpine, Alpine por ahí.
Ok, van a ver la imagen 14 a Alpine, la imagen 13.9 Alpine con la versión 3.17 de Alpine, es decir,
está la versión de postres y esto sería la versión de Alpine que está utilizando, porque puede ser
que a ustedes les interese eso saber.
En fin, hay muchas, muchos, muchos, muchos tags.
Cada uno de ellos ha sido verificado y ha sido comprobado con el software Sail, con el Text for Sail
para asegurarse que ustedes tienen una imagen que va a funcionar como ustedes esperan, que no tiene
ningún código malicioso.
Y bueno, ustedes imaginarán por dónde va la cosa.
Ok?
Por ahora lo vamos a dejar hasta ese punto y nos vemos en la siguiente clase, donde vamos a utilizar
esta imagen de PostgreSQL que nosotros montamos.
Pero vamos a conectarnos y hacer algo con la base de datos.
Qué les parece eso?
Nos vemos en la próxima clase.