Skip to content

Commit 35081d1

Browse files
committed
Update README.md with Docker Swarm introduction and new images
1 parent 71322a2 commit 35081d1

File tree

4 files changed

+40
-21
lines changed

4 files changed

+40
-21
lines changed

01-contenedores/contenedores-vi/README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Día VI: Docker Compose y Docker Swarm 🚀
22

3-
![Docker Compose y Swarm](imagenes/Docker%20compose.png)
3+
![Docker Compose](imagenes/Docker%20compose.png)
44

55
## 📋 Agenda
66

@@ -191,6 +191,8 @@ docker compose -p my_wordpress down
191191

192192
## 🌊 Introducción a Docker Swarm
193193

194+
![Docker Swarm](imagenes/Docker%20Swarm.png)
195+
194196
Docker Swarm es el orquestador nativo de Docker que te permite crear y gestionar un cluster de nodos Docker. Es perfecto para aplicaciones que necesitan alta disponibilidad y escalabilidad.
195197

196198
**Inicializar un cluster Swarm:**
2.7 MB
Loading
Lines changed: 37 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,28 @@
1-
# Laboratorio Contenedores Docker
1+
# 🐳 Laboratorio Contenedores - Misiones del final del módulo 🦸🏼‍♀️🦸🏼
22

3-
## Ejercicio 1
3+
![Laboratorio Docker](images/Laboratorio%20Docker.png)
44

5-
Dockeriza la aplicación dentro de [lemoncode-challenge](./), la cual está compuesta de 3 partes:
5+
>[!IMPORTANT]
6+
> Antes de lanzarte a contenerizar todo, ¡relájate y prueba la aplicación tal como está! 😌 Lo único que necesitas es tener MongoDB funcionando. Empieza creando MongoDB en Docker y usa un cliente como MongoDB Compass (¡que ya viste en clase!) para añadir datos que tu API pueda devolver. A partide aquí ya estás list@ para comprobar lo que has aprendido.
67
7-
- Un front-end con Node.js
8-
- Un backend en .NET (`dotnet-stack`) o en Node.js (`node-stack`) que utiliza un MongoDB para almacenar la información.
9-
- El MongoDB donde se almacena la información en una base de datos.
8+
## 🎯 Misión 1: Dockeriza como un Pro
109

11-
Nota: como has podido comprobar, el directorio `lemoncode-challenge` tiene dos carpetas: `dotnet-stack` y `node-stack`. En ambos casos el frontend es el mismo, sólo cambia el backend. Usa el stack que prefieras.
10+
¡Es hora de poner en práctica todo lo aprendido! 💪 Vas a dockerizar una aplicación completa dentro de [lemoncode-challenge](./), que está compuesta de 3 partes increíbles:
1211

13-
### Requisitos del ejercicio
12+
- 🌐 **Frontend**: Una interfaz con Node.js
13+
- ⚙️ **Backend**: Elige tu aventura - .NET (`dotnet-stack`) o Node.js (`node-stack`) que se conecta con MongoDB
14+
- 🗄️ **Base de datos**: MongoDB para almacenar toda la información
1415

15-
1. Los tres componentes deben estar en una red llamada `lemoncode-challenge`.
16-
2. El backend debe comunicarse con el mongodb a través de esta URL `mongodb://some-mongo:27017`.
17-
3. El front-end debe comunicarse con la api a través de `http://topics-api:5000/api/topics`.
18-
4. El front-end debe estar mapeado con el host para ser accesible a través del puerto 8080.
19-
5. El MongoDB debe almacenar la información que va generando en un volumen, mapeado a la ruta `/data/db`.
20-
6. Este debe de tener una base de datos llamada `TopicstoreDb` con una colección llamada `Topics`. La colección `Topics` debe tener esta estructura:
16+
> 💡 **¡Libertad de elección!** Como habrás notado, tienes dos carpetas: `dotnet-stack` y `node-stack`. El frontend es idéntico en ambos casos, solo cambia el backend. ¡Elige el que más te motive!
17+
18+
### 📋 Misión: Cumple estos requisitos
19+
20+
1. 🌐 Los tres componentes deben vivir en armonía en una red llamada `lemoncode-challenge`
21+
2. 🔗 El backend debe comunicarse con MongoDB usando esta URL mágica: `mongodb://some-mongo:27017`
22+
3. 🚀 El frontend debe conectar con la API mediante: `http://topics-api:5000/api/topics`
23+
4. 🌍 El frontend debe ser accesible desde tu navegador en el puerto `8080`
24+
5. 💾 MongoDB debe persistir los datos en un volumen mapeado a `/data/db`
25+
6. 📊 Crea una base de datos llamada `TopicstoreDb` con una colección `Topics` que tenga esta estructura:
2126

2227
```json
2328
{
@@ -26,18 +31,30 @@ Nota: como has podido comprobar, el directorio `lemoncode-challenge` tiene dos c
2631
}
2732
```
2833

29-
¡Añade varios registros!
34+
🎉 **¡No olvides añadir varios registros para hacer tu app más interesante!**
3035

31-
__Tip para backend__: Antes de intentar contenerizar y llevar a cabo todos los pasos del ejercicio se recomienda intentar ejecutar la aplicación sin hacer cambios en ella. En este caso, lo único que es posible que “no tengamos a mano” es el MongoDB. Por lo que empieza por crear este en Docker, usa un cliente como el que vimos en el primer día de clase (MongoDB Compass) para añadir datos que pueda devolver la API.
36+
__Tip para backend__: Antes de intentar contenerizar y llevar a cabo todos los pasos del ejercicio se recomienda intentar ejecutar la aplicación sin hacer cambios en ella. En este caso, lo único que es posible que “no tengamos a mano” es el MongoDB. Por lo que empieza por crear este en Docker, usa un cliente como MongoDB Compass para añadir datos que pueda devolver la API.
3237

3338
![Mongo compass](./images/mongodbcompass.png)
3439

35-
Nota: es más fácil si abres Visual Studio Code desde la carpeta `backend` para hacer las pruebas y las modificaciones que si te abres desde la raíz del repo. Para ejecutar este código solo debes lanzar `dotnet run` si usas el stack de .NET, o `npm install && npm start` si usas el stack de Node.js.
40+
> 💎 **Pro Tip**: Abre Visual Studio Code directamente desde la carpeta `backend` para hacer las pruebas. ¡Te ahorrará tiempo! Para ejecutar el código:
41+
> - .NET stack: `dotnet run`
42+
> - Node.js stack: `npm install && npm start`
3643
37-
__Tip para frontend__: Para ejecutar el frontend abre esta carpeta en VS Code y ejecuta primero `npm install`. Una vez instaladas las dependencias ya puedes ejecutarla con `npm start`. Debería de abrirse un navegador con lo siguiente:
44+
**🎨 Para el Frontend**:
45+
Abre la carpeta frontend en VS Code y ejecuta `npm install` para instalar las dependencias. Luego `npm start` y ¡voilà! Tu navegador debería mostrar algo así:
3846

3947
![Topics](./images/topics.png)
4048

41-
## Ejercicio 2
49+
## 🎪 Misión 2: ¡Docker Compose al Rescate!
50+
51+
¡Ahora viene la parte divertida! 🎊 Toma tu aplicación dockerizada de la misión 1 y usa Docker Compose para orquestar todas las piezas como un director de orquesta.
52+
53+
### 🎯 Tu misión incluye:
54+
- 🌐 Configurar la red que conecta todos los servicios
55+
- 💾 Definir el volumen que necesita MongoDB para persistir datos
56+
- 🔧 Establecer las variables de entorno necesarias
57+
- 🚪 Exponer los puertos correctos para web y API
58+
- 📝 Documentar los comandos para levantar, parar y eliminar el entorno
4259

43-
Ahora que ya tienes la aplicación del ejercicio 1 dockerizada, utiliza Docker Compose para lanzar todas las piezas a través de este. Debes plasmar todo lo necesario para que esta funcione como se espera: la red que utilizan, el volumen que necesita MongoDB, las variables de entorno, el puerto que expone la web y la API. Además debes indicar qué comandos utilizarías para levantar el entorno, pararlo y eliminarlo.
60+
¡Demuestra que eres un maestro de la orquestación de contenedores! 🎭✨
2.89 MB
Loading

0 commit comments

Comments
 (0)