Mostrando entradas con la etiqueta contenedores. Mostrar todas las entradas
Mostrando entradas con la etiqueta contenedores. Mostrar todas las entradas

lunes, 25 de agosto de 2025

Docker: la herramienta para empaquetar nuestras aplicaciones

 

Docker es la herramienta ideal que nos permite empaquetar nuestras aplicaciones. Gracias a la filosofía de los contenedores, los cuales son entornos aislados para nuestro código. Estos contienen todo lo necesario para que nuestro código (aplicaciones) e ejecuten en cualquier otro sistema. Olvidémonos de las máquinas virtuales, de los requerimientos engorrosos, de las instalaciones y dependencias. Con Docker se nos abre un mundo donde el desarrollar, enviar y ejecutar aplicaciones es algo sencillo.

Docker ofrece:

  1. Portabilidad de nuestras aplicaciones.
  2. Aislamiento, cada contenedor es independiente.
  3. Consistencia, no hay errores.
  4. Escalabilidad, podemos actualizar o extender nuestros desarrollos.
  5. Construir e implementar más fácilmente.
En este blog ya hemos hablado sobre esta herramienta que se ha vuelto muy popular en los últimos años. Así como su relación con Kubernetes. Y es que ambas herramientas son indispensables en el mundo del Devops y Cloud.

En esta ocasión veremos cómo instalarlo en un entorno Windows.

Para descargarlo debemos ir al sitio oficial:

En la sección https://www.docker.com/products/docker-desktop/  descargaremos Docker Desktop. Esta es una aplicación que nos permitirá instalar Docker en nuestras máquinas. Para sistemas operativos Mac OS, Linux y Windows.

Nosotros usaremos un instalador de Windows.

Una vez teniendo el ejecutable y dando doble clic iniciará la instalación.


Le daremos OK.

Nota: En SO Windows debe estar habilitada la opción de virtualización. Puedes checar este vídeo: https://www.youtube.com/watch?v=Tl4kODRGtIc




Además tendrás que tener habilitada la característica de Microsoft Hyper-V.


Volviendo a la instalación.




Cuando finalice la instalación deberemos reiniciar.

Deberás tener una cuenta en https://hub.docker.com/ para poder iniciar o crear una nueva si es que no la tienes.

En caso de que salga un error de tipo WSL abre una terminal y escribe:
$ wsl --update

Esto instalará el subsistema de Windows para Linux y se reiniciará el Docker Engine.


¡Instalación finalizada!

Con esto tendremos Docker en nuestra máquina.

Enlaces:

domingo, 20 de julio de 2025

Docker: conociendo el flujo de trabajo

 


En esta entrega veremos el flujo de trabajo en Docker.

Tomemos como referencia la siguiente imagen:

Todo inicia con nuestra aplicación (MyApp). Que es la que queremos subir a un contenedor Docker.

Para ello debemos crear un archivo llamado Dockerfile. El cual contendrá todas las dependencias, rutas y configuraciones necesarias para hacer funcionar nuestra aplicación.

Una vez teniendo este archivo, docker se encargará de crear la imagen, la cual es un paquete autocontenido con todo lo necesario para ejecutar la aplicación.

Posteriormente tendremos un contenedor, que es la instancia activa y aislada de la aplicación corriendo en el sistema.

Todo gracias al motor de Docker (Docker Engine), el componente que interpreta el Dockerfile, construye la imagen, lanza el contenedor y gestiona todo ese flujo. Es el corazón del ecosistema Docker.

El SO anfitrión donde reside Docker puede ser un SO Linux, Mac OS o Windows.

Básicamente este es flujo de trabajo de Docker. Omitiendo su interracción con Kubernetes.

Enlaces:

https://codemonkeyjunior.blogspot.com/2025/01/docker-en-palabras-sencillas.html
https://alquimistadecodigo.blogspot.com/2020/07/docker-imagenes-y-contenedores.html
https://hub.docker.com/

martes, 14 de enero de 2025

Kubernetes como si le explicarás a tu mascota (o a un niño de cinco años)

Kubernetes explicado en términos sencillos:

"Supongamos que tienes muchos juguetes, como carritos, muñecas y bloques. Si los dejas todos tirados, sería un desastre, ¿verdad? Kubernetes es como un amigo mágico que ayuda a ordenar todos tus juguetes".

  1. Organiza: Te ayuda a poner todos los juguetes en grupos. Por ejemplo, todos los carritos juntos, todas las muñecas en otro lugar. 
  2. Mantiene el orden: Si un juguete se rompe o se pierde, Kubernetes puede sacar otro del mismo tipo para que sigas jugando sin problemas. 
  3. Comparte: Si tienes amigos jugando contigo, Kubernetes asegura que todos tengan los juguetes que necesitan, sin que nadie se quede sin nada.

Así que, Kubernetes es como un super organizador que hace que jugar con muchos juguetes sea divertido y sin enredos

"Piensa en Kubernetes como un gerente muy eficiente de una gran empresa, pero en lugar de empleados, maneja aplicaciones y servicios en computadoras".

Imagina que tienes una tienda con muchas sucursales. Cada sucursal necesita tener ciertos productos (aplicaciones) en stock y funcionando bien:

  1. Organización: Kubernetes se asegura de que cada sucursal tenga los productos correctos. Si una sucursal necesita más de un producto específico, Kubernetes lo distribuye automáticamente.
  2. Mantenimiento: Si algún producto no funciona bien en una sucursal, Kubernetes lo reemplaza o repara sin que tú tengas que intervenir directamente. Así, tus clientes siempre tienen lo que necesitan sin interrupciones. 
  3. Escalabilidad: Si de repente hay mucha demanda en una sucursal, Kubernetes puede aumentar rápidamente el número de productos disponibles sin que tengas que preocuparte por la logística.

En resumen, Kubernetes es un sistema que automatiza la gestión, distribución y mantenimiento de aplicaciones en múltiples computadoras, asegurándose de que todo funcione sin problemas, incluso cuando la demanda cambia.

Relación con Docker

Piensa en Docker y Kubernetes como dos partes de un equipo que trabajan juntas para hacer más fácil la gestión de aplicaciones.

"Docker es como una caja mágica para empacar tus cosas. Imagina que cada aplicación es un juguete y Docker te permite meter cada juguete en su propia caja especial (un contenedor). Esta caja asegura que el juguete funcione de la misma manera, sin importar en qué lugar lo saques. Así, puedes mover tus aplicaciones de una computadora a otra sin problemas".

"Kubernetes, por otro lado, es el gerente que organiza todas esas cajas (contenedores de Docker). Si tienes muchas cajas, Kubernetes se encarga de:

  • Colocarlas en los estantes correctos (las computadoras adecuadas). 
  • Mantenerlas en orden, asegurándose de que siempre haya cajas disponibles si una se rompe o si necesitas más. 
  • Distribuir las cajas según la necesidad, si una área necesita más de cierto tipo de juguete, Kubernetes lo maneja.

En resumen, Docker es para empaquetar y asegurar que tus aplicaciones funcionen de manera consistente, mientras que Kubernetes es para gestionar y escalar esos paquetes de manera eficiente en múltiples computadoras.

Ambos trabajan juntos para que la tecnología detrás de las aplicaciones sea más manejable y menos complicada para ti.

Enlaces:

https://kubernetes.io/es/docs/concepts/overview/what-is-kubernetes/

domingo, 12 de enero de 2025

Docker en palabras sencillas

En pasados post ya hemos hablado algo sobre Docker:

¿Qué es Docker?

Es como una caja que guarda tu aplicación con todo lo necesario para ejecutarse en cualquier otra máquina.

Es decir, es una caja donde se empaquetan las configuraciones, librerías, etc. de tu aplicación (Java, Go, Python, Node JS, etc.). Esta caja podrá ser "abierta" en otra máquina y podrá ejecutar tu aplicación sin tener que instalar y/o configurar absolutamente nada.

Similar a lo que hacíamos anteriormente en una Máquina Virtual. De hecho, Docker las ha venido reemplazando.

Mientras que una Máquina Virtual necesita su propio sistema operativo, tarda minutos en arrancar, consume muchos recursos de memoria RAM y espacio en el disco, Docker es más ligero, consume pocos recursos, arranca en segundos y usa el núcleo del sistema host.

Podríamos decir que: Docker es una especie de Máquina Virtual mejorada.

Preguntando a Grok, nos dice:

"Imagina que Docker es como una caja mágica. Dentro de esa caja, puedes poner todo lo que necesita un programa para funcionar, como sus juguetes y herramientas favoritas".

"Cuando cierras la caja, puedes llevarla a cualquier lugar, y al abrirla, el programa funcionará exactamente igual que en casa, sin importar dónde estés. Así que, con Docker, puedes mover programas de un lugar a otro sin que se rompan o se porten mal".

¿Qué es un contenedor?

Un contenedor en Docker es como una pequeña casa portátil para un programa.

"Imagina que tienes un juguete que necesita una casa especial para vivir. Esta casa tiene todo lo que necesita el juguete: su cama, su comida, y sus juegos".

"Cuando metes el juguete en su casa portátil, puedes llevarlo a cualquier parte, y siempre estará feliz porque tiene todo lo que necesita dentro de su casa. Así es un contenedor; es una casa pequeña y especial donde tu programa vive y puede funcionar en cualquier lugar al que lo lleves".

¿Dónde se guardan los contenedores?

Se almacenan repositorios, ya sean públicos y/o privados.

Un ejemplo es Docker Hub.

Los contenedores y las imágenes se almacenan dentro del sistema de archivos de la máquina virtual que Docker Desktop utiliza.

Se gestionan y organizan gracias al demonio (un programa que se ejecuta en segundo plano) de Docker.

Preguntando a Grok, nos dice:

"Los contenedores se guardan en un lugar especial en tu computadora, que podemos imaginar como un gran parque de juegos".

"Piensa en tu computadora como un parque enorme. En este parque, hay un área especial donde están todas las casitas de juguetes (los contenedores)". "Cuando no estás jugando con una casita, la dejas en este parque, donde está segura y lista para que la uses cuando quieras".

"Así que, los contenedores se guardan en una parte de tu computadora reservada solo para ellos, donde pueden esperar hasta que decidas usarlos de nuevo".

Un contenedor en Docker puede tener:

  • Imagen.
  • Volúmenes.
  •  Redes.

¿Qué es una Imagen?

Una imagen en Docker es como un libro de instrucciones para construir una casa de juguetes.

"Imagina que quieres construir una casa para tu juguete. Antes de empezar, necesitas un libro que te diga exactamente cómo hacer la casa, con todos los detalles: qué materiales usar, cómo poner las paredes, el techo, y hasta dónde irán las ventanas".

Una imagen en Docker es exactamente eso, pero para programas. Es un libro de instrucciones que tiene todo lo necesario para crear una casa portátil (un contenedor) para tu programa. Cada vez que quieras hacer una nueva casa igual, solo sigues las instrucciones del libro, y ¡listo! Tienes una nueva casa para tu programa.

Una imagen, por lo tanto, tendrá el sistema operativo base, las dependencias y todo lo que tu aplicación necesita para trabajar.

Instalando Erlang con Docker

Instalamos una imagen de Erlang con Docker:

$ docker pull erlang

Listamos la imagen descargada:

$ docker images -a

Ejecutamos el REPL de Erlang:

$ docker run -it --rm erlang

Creamos un programa en Erlang.

holamundo.erl

% Hola mundo en Erlang
-module(holamundo).
-export([main/1]).

main(_Args) ->
    io:format("Hola, mundo!!~n").

Para ejecutar un script de Erlang:

$ docker run -it --rm --name erlang-inst1 -v "$PWD":/usr/src/myapp -w /usr/src/myapp erlang escript holamundo.erl

Hemos visto lo que es Docker y un ejemplo de como descargar una imagen (de Erlang).

En próximas entregas continuaremos con el tema.

Enlaces:

https://codemonkeyjunior.wordpress.com/2020/09/06/docker-instalando-imagen-de-php/
https://alquimistadecodigo.blogspot.com/2021/06/docker-aclarando-cosas.html
https://hub.docker.com/_/php
https://stackoverflow.com/questions/16047306/how-is-docker-different-from-a-virtual-machine

Jai un lenguaje de programación inspirado en C++

Hoy hablaremos de un nuevo lenguaje de programación llamado Jai . Se trata de un lenguaje de programación que está desarrolland...

Etiquetas

Archivo del blog