From 54e872d46c82a938d46788e9f8a5948952283ee1 Mon Sep 17 00:00:00 2001 From: mchiecher Date: Thu, 11 Sep 2025 07:17:37 -0300 Subject: [PATCH] Primer commit --- README.md | 117 ++++++++++++++++++++++++++++++++++++ backend/build/Dockerfile | 31 ++++++++++ backend/build/app.py | 22 +++++++ docker-compose.yml | 39 ++++++++++++ dockerarchitecture.webp | Bin 0 -> 73666 bytes frontend/build/Dockerfile | 43 +++++++++++++ frontend/build/index.js | 14 +++++ frontend/build/package.json | 13 ++++ frontend/data/index.js | 14 +++++ 9 files changed, 293 insertions(+) create mode 100644 README.md create mode 100644 backend/build/Dockerfile create mode 100644 backend/build/app.py create mode 100644 docker-compose.yml create mode 100644 dockerarchitecture.webp create mode 100644 frontend/build/Dockerfile create mode 100644 frontend/build/index.js create mode 100644 frontend/build/package.json create mode 100644 frontend/data/index.js diff --git a/README.md b/README.md new file mode 100644 index 0000000..2ccb4db --- /dev/null +++ b/README.md @@ -0,0 +1,117 @@ +# Introducci贸n a la Contenerizaci贸n 馃惓 + +Vamos a sumergirnos en el mundo de los contenedores, una tecnolog铆a que ha transformado la forma en que los desarrolladores empaquetan, distribuyen y ejecutan sus aplicaciones. Si bien es un concepto que a menudo se asocia con el backend, entender los fundamentos de los contenedores es crucial para cualquier desarrollador, incluido el frontend. + +## 驴Qu茅 es un Contenedor? + +Un contenedor es una unidad de software empaquetada y estandarizada que puede incluir todo lo necesario para ejecutar una aplicaci贸n: el c贸digo, el entorno de ejecuci贸n, las librer铆as del sistema y las dependencias. + +Piensen en un contenedor como una caja 馃摝 totalmente aislada que contiene su aplicaci贸n. No importa en qu茅 m谩quina o sistema operativo la pongan, la aplicaci贸n dentro de la caja funcionar谩 exactamente igual porque tiene todo lo que necesita consigo. Esto resuelve el cl谩sico problema de **"funciona en mi m谩quina"**. + +> **Nota:** A diferencia de las m谩quinas virtuales (VMs), los contenedores son mucho m谩s ligeros y r谩pidos porque comparten el kernel del sistema operativo del host en lugar de virtualizar un sistema operativo completo. + +## Docker: El Rey de los Contenedores + +Docker es la plataforma m谩s popular para crear, gestionar y ejecutar contenedores. Vamos a ver los componentes principales del ecosistema de Docker. + +### Arquitectura de un Host con Docker + +![Arquitectura de Docker](dockerarchitecture.webp) + +Un host con Docker tiene dos partes principales: + +- **Docker Daemon (o Engine):** Es el proceso que se ejecuta en segundo plano y gestiona todas las operaciones de los contenedores. Se encarga de construir im谩genes, ejecutar contenedores y manejar la red y el almacenamiento. + +- **Docker CLI (Cliente):** Es la herramienta de l铆nea de comandos que usamos para interactuar con el Docker Daemon. Cuando escribes un comando como `docker run`, el cliente se comunica con el daemon para ejecutar la acci贸n. + +### Im谩genes vs. Contenedores + +Es crucial entender la diferencia entre estos dos conceptos: + +- **Imagen:** Una imagen es una plantilla inmutable que contiene las instrucciones para crear un contenedor. Las im谩genes se construyen a partir de un Dockerfile. + +- **Contenedor:** Un contenedor es una instancia en ejecuci贸n de una imagen. Se pueden crear m煤ltiples contenedores a partir de una misma imagen. + +## Conceptos Clave en Docker + +### Persistencia de Datos + +Por defecto, los contenedores son ef铆meros. Esto significa que cuando se detiene y se elimina un contenedor, todos los datos que estaban dentro de 茅l se pierden. Para que los datos persistan, usamos **vol煤menes**. + +Un volumen es un mecanismo de almacenamiento que existe fuera del ciclo de vida del contenedor. Es un directorio en el sistema de archivos del host que se "monta" o se enlaza a un directorio dentro del contenedor. De esta manera, aunque el contenedor sea eliminado, los datos en el volumen permanecen. + +### Exposici贸n de Puertos + +Si su aplicaci贸n se ejecuta dentro de un contenedor, 驴c贸mo se conecta un usuario a ella? La respuesta es **exponiendo puertos**. + +La exposici贸n de puertos crea un enlace entre un puerto del host (tu m谩quina) y un puerto del contenedor. Por ejemplo, si tu aplicaci贸n frontend se ejecuta en el puerto 3000 dentro del contenedor, puedes mapear el puerto 8080 de tu m谩quina al puerto 3000 del contenedor (`-p 8080:3000`). As铆, al acceder a `localhost:8080` desde tu navegador, en realidad est谩s accediendo a la aplicaci贸n dentro del contenedor. + +## Comandos B谩sicos de Docker CLI + +Ahora, vamos a ver los comandos que m谩s usar谩n en su d铆a a d铆a. + +| Comando | Descripci贸n | Ejemplo de Uso | +|---------|-------------|----------------| +| `docker pull` | Descarga una imagen de un registro (como Docker Hub). | `docker pull node:18-alpine` | +| `docker build` | Construye una imagen a partir de un Dockerfile. | `docker build -t mi-app-frontend .` | +| `docker run` | Crea y ejecuta un contenedor a partir de una imagen. | `docker run -d -p 8080:3000 mi-app-frontend` | +| `docker ps` | Lista los contenedores en ejecuci贸n. Usa `-a` para ver todos (ejecutando y detenidos). | `docker ps -a` | +| `docker stop` | Detiene un contenedor en ejecuci贸n. | `docker stop ` | +| `docker start` | Inicia un contenedor que est谩 detenido. | `docker start ` | +| `docker rm` | Elimina un contenedor detenido. | `docker rm ` | +| `docker rmi` | Elimina una imagen. | `docker rmi ` | +| `docker exec` | Ejecuta un comando dentro de un contenedor en ejecuci贸n. | `docker exec -it /bin/bash` | + +## Docker Compose: Orquestaci贸n de Aplicaciones + +Cuando una aplicaci贸n se vuelve m谩s compleja, con un frontend, un backend y una base de datos, ejecutar cada contenedor individualmente se vuelve tedioso. Aqu铆 es donde entra **Docker Compose**. + +Docker Compose es una herramienta para definir y ejecutar aplicaciones multi-contenedor usando un solo archivo `docker-compose.yml`. + +### Ejemplo de docker-compose.yml + +```yaml +version: '3.8' + +services: + frontend: + build: . + ports: + - "8080:3000" + volumes: + - ./src:/usr/src/app/src + container_name: mi_app_frontend + command: npm start + + backend: + image: mi-backend-imagen:1.0 + ports: + - "5000:5000" +``` + +#### Explicaci贸n de las propiedades: + +- **`version`:** Especifica la versi贸n del formato del archivo Compose. +- **`services`:** Define los servicios (contenedores) de la aplicaci贸n. +- **`frontend` y `backend`:** Son los nombres de los servicios que vamos a crear. +- **`build: .`:** Le dice a Docker que construya la imagen para el servicio frontend usando el Dockerfile que est谩 en el directorio actual. +- **`ports`:** Mapea los puertos del host a los puertos del contenedor. +- **`volumes`:** Monta un volumen. En este caso, el c贸digo fuente local (`./src`) se sincroniza con el c贸digo dentro del contenedor, lo que permite ver los cambios en tiempo real sin tener que reconstruir la imagen. 隆Ideal para desarrollo! +- **`container_name`:** Asigna un nombre espec铆fico al contenedor. + +### Comandos 脷tiles de Docker Compose + +| Comando | Descripci贸n | Ejemplo de Uso | +|---------|-------------|----------------| +| `docker compose up` | Construye, crea y levanta todos los servicios definidos en el archivo docker-compose.yml. | `docker compose up -d` Modo que ejecuta los contenedores en segundo plano.| +| `docker compose down` | Detiene y elimina los contenedores, redes y vol煤menes creados por up. | `docker compose down` | +| `docker compose ps` | Lista los servicios de la aplicaci贸n. | `docker compose ps` | +| `docker compose logs` | Muestra los logs de los servicios. | `docker compose logs frontend` | + +## 驴Por qu茅 deber铆amos usar Docker? + +- **Entorno de desarrollo consistente:** Todos en el equipo trabajan con el mismo entorno, eliminando problemas de dependencias. + +- **Aislamiento:** Permite probar diferentes versiones de Node.js o de librer铆as sin afectar el sistema global. + +- **Despliegue simplificado:** El mismo contenedor que se usa para desarrollo se puede usar en producci贸n, lo que reduce las incompatibilidades. \ No newline at end of file diff --git a/backend/build/Dockerfile b/backend/build/Dockerfile new file mode 100644 index 0000000..8253328 --- /dev/null +++ b/backend/build/Dockerfile @@ -0,0 +1,31 @@ +# =========================================== +# DOCKERFILE PARA APLICACI脫N BACKEND PYTHON +# =========================================== + +# Usamos una imagen base ligera de Python 3.10 basada en Alpine Linux +# Alpine es una distribuci贸n Linux muy peque帽a (~5MB) que reduce el tama帽o de la imagen +# python:3.10-alpine incluye Python 3.10 y las herramientas b谩sicas necesarias +FROM python:3.10-alpine + +# Establecemos el directorio de trabajo dentro del contenedor +# Todas las operaciones posteriores (COPY, RUN, CMD) se ejecutar谩n desde este directorio +# /usr/src/app es una convenci贸n com煤n para aplicaciones en contenedores +WORKDIR /usr/src/app + +# Copiamos el archivo de la aplicaci贸n Python desde el host al contenedor +# El primer par谩metro (app.py) es el archivo fuente en el host +# El segundo par谩metro (.) es el destino en el contenedor (directorio actual = /usr/src/app) +# Esto copia app.py al directorio de trabajo del contenedor +COPY app.py . + +# Exponemos el puerto 8000 que usar谩 el servidor web +# Esta instrucci贸n es solo documentativa - no abre el puerto autom谩ticamente +# El puerto se abre realmente cuando se ejecuta el contenedor con -p o en docker-compose +# Es una buena pr谩ctica documentar qu茅 puertos usa la aplicaci贸n +EXPOSE 8000 + +# Comando por defecto para iniciar la aplicaci贸n cuando se ejecute el contenedor +# Se ejecuta autom谩ticamente cuando se inicia el contenedor (a menos que se sobrescriba) +# Formato de array: ["comando", "argumento1", "argumento2"] +# python app.py ejecutar谩 el archivo app.py con el int茅rprete de Python +CMD ["python", "app.py"] diff --git a/backend/build/app.py b/backend/build/app.py new file mode 100644 index 0000000..795ba11 --- /dev/null +++ b/backend/build/app.py @@ -0,0 +1,22 @@ +import http.server +import socketserver + +# Puerto en el que se ejecutar谩 el servidor +PORT = 8000 + +# Creamos un manejador de solicitudes HTTP +class MyHandler(http.server.SimpleHTTPRequestHandler): + def do_GET(self): + # Establecemos el c贸digo de respuesta y el tipo de contenido + self.send_response(200) + self.send_header("Content-type", "text/html") + self.end_headers() + + # Enviamos la respuesta HTML + self.wfile.write(bytes("

Hola desde el Backend

Esta es una aplicacion de ejemplo con el servidor web de Python.

", "utf-8")) + +# Configuramos el servidor +with socketserver.TCPServer(("", PORT), MyHandler) as httpd: + # Ahora el mensaje se imprime solo una vez, cuando el servidor se levanta correctamente + print(f"Servidor backend corriendo en el puerto {PORT}") + httpd.serve_forever() \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..b57fad3 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,39 @@ +# Versi贸n del formato de Docker Compose +# La versi贸n 3.8 es compatible con Docker Engine 19.03.0+ +# Actualmente especificar la versi贸n es opcional. +version: '3.8' + +# Secci贸n que define todos los servicios (contenedores) de la aplicaci贸n +services: + # Servicio para la aplicaci贸n frontend de Node.js + frontend: + # Configuraci贸n de construcci贸n de la imagen Docker + build: + # Directorio donde se encuentra el Dockerfile para construir la imagen + # En este caso, busca el Dockerfile en la carpeta ./frontend/build + context: ./frontend/build + # Mapeo de puertos entre el host y el contenedor + # Formato: "puerto_host:puerto_contenedor" + # El puerto 3000 del host se mapea al puerto 3000 del contenedor + ports: + - "3000:3000" + # Las l铆neas siguientes (comentadas) definen vol煤menes (bind mounts): + # montan archivos/carpetas del host dentro del contenedor + #volumes: + # - ./frontend/data/index.js:/usr/src/app/index.js + + # Servicio para la aplicaci贸n backend (Python/Flask) + backend: + # Configuraci贸n de construcci贸n de la imagen Docker + build: + # Directorio donde se encuentra el Dockerfile para construir la imagen + # En este caso, busca el Dockerfile en la carpeta ./backend/build + context: ./backend/build + # Mapeo de puertos entre el host y el contenedor + # El puerto 8000 del host se mapea al puerto 8000 del contenedor + ports: + - "8000:8000" + # Comando personalizado para ejecutar cuando se inicie el contenedor + # python -u: ejecuta Python con salida sin buffer (unbuffered) + # app.py: el archivo principal de la aplicaci贸n Python + command: python -u app.py diff --git a/dockerarchitecture.webp b/dockerarchitecture.webp new file mode 100644 index 0000000000000000000000000000000000000000..611b803ba6d41a10fd6ac0e5584cf965d2f03869 GIT binary patch literal 73666 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

r6x>rY-#jERPYxgmV+NRup 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 { + res.send('

隆Hola desde el Frontend!

Esta es una aplicacion de ejemplo en Node.js.

'); +}); + +// El servidor escucha en el puerto definido +app.listen(port, () => { + console.log(`Aplicacion frontend corriendo en http://localhost:${port}`); +}); diff --git a/frontend/build/package.json b/frontend/build/package.json new file mode 100644 index 0000000..5a11e3e --- /dev/null +++ b/frontend/build/package.json @@ -0,0 +1,13 @@ +{ + "name": "frontend-app", + "version": "1.0.0", + "description": "Una aplicacion de ejemplo en Node.js para Docker", + "main": "index.js", + "scripts": { + "start": "node index.js" + }, + "dependencies": { + "express": "^4.18.2" + } + } + \ No newline at end of file diff --git a/frontend/data/index.js b/frontend/data/index.js new file mode 100644 index 0000000..bb7b19b --- /dev/null +++ b/frontend/data/index.js @@ -0,0 +1,14 @@ +// Importamos el m贸dulo express +const express = require('express'); +const app = express(); +const port = 3000; + +// Definimos la ruta ra铆z que enviar谩 una respuesta +app.get('/', (req, res) => { + res.send('

隆Hola desde el Frontend con los archivos residentes en el host!

Esta es una aplicacion de ejemplo en Node.js.

'); +}); + +// El servidor escucha en el puerto definido +app.listen(port, () => { + console.log(`Aplicacion frontend corriendo en http://localhost:${port}`); +});