You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Refactor frontend application: remove old files, implement new features, and enhance UI/UX
- Deleted obsolete files: index.html, index.tsx, model.ts, styles.css, topic-row.tsx, topic-table.tsx, tsconfig.json, webpack.config.js, and override.env.
- Added new Docker Compose configuration for frontend and backend services.
- Introduced a new features document outlining enhancements for the Topics Manager.
- Updated package.json and package-lock.json to include Swapy for drag-and-drop functionality.
- Revamped styles.css for a modern look with gradient backgrounds and responsive design.
- Enhanced TopicRow and TopicTable components to support topic creation and deletion with improved UI.
- Implemented loading states and error handling for better user experience.
En esta lección aprenderemos cómo conectar contenedores entre sí y con el mundo exterior. Cubriremos los diferentes tipos de redes disponibles en Docker y cómo gestionarlas.En esta lección aprenderemos cómo conectar contenedores entre sí y con el mundo exterior. Cubriremos los diferentes tipos de redes disponibles en Docker y cómo gestionarlas.
5
+
¡Hola lemoncoder 👋🏻🍋 ! En esta lección aprenderemos cómo conectar contenedores entre sí y con el mundo exterior. Cubriremos los diferentes tipos de redes disponibles en Docker y cómo gestionarlas.En esta lección aprenderemos cómo conectar contenedores entre sí y con el mundo exterior. Cubriremos los diferentes tipos de redes disponibles en Docker y cómo gestionarlas.
6
6
7
7
## 🎬 Vídeos de la introducción en el campus
8
8
@@ -337,6 +337,14 @@ También puedes desconectar contenedores de una red específica antes de elimina
337
337
docker network disconnect lemoncode-net lemon-web
338
338
```
339
339
340
+
341
+
## ⭐ Bonus: extensión ngrok para Docker Desktop
342
+
343
+
Si usas Docker Desktop, puedes aprovechar la extensión de ngrok para exponer tus contenedores al mundo exterior de forma segura y sencilla. Esto es útil cuando quieres compartir tu trabajo con alguien sin necesidad de configurar puertos o redes complicadas.
344
+
345
+
346
+
347
+
340
348
## 🎉 ¡Felicidades, eres oficialmente un ninja de redes!
341
349
342
350
En esta épica aventura de networking has aprendido a:
Copy file name to clipboardExpand all lines: 01-contenedores/contenedores-vi/README.md
+81-31Lines changed: 81 additions & 31 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,31 +2,30 @@
2
2
3
3

4
4
5
-
## 📋 Agenda
6
-
7
-
-[🏗️ Introducción a Docker Compose](#️-introducción-a-docker-compose)
8
-
-[🎯 Escenario: Blog con WordPress y MySQL](#-escenario-blog-con-wordpress-y-mysql)
9
-
-[📝 Manual vs Docker Compose](#-manual-vs-docker-compose)
10
-
-[🐳 Docker Compose en acción](#-docker-compose-en-acción)
11
-
-[⚡ Comandos básicos de Compose](#-comandos-básicos-de-compose)
12
-
-[🔧 Gestión avanzada de proyectos](#-gestión-avanzada-de-proyectos)
13
-
-[🌊 Introducción a Docker Swarm](#-introducción-a-docker-swarm)
14
-
-[🎪 Creando un cluster Swarm](#-creando-un-cluster-swarm)
15
-
-[🚀 Desplegando servicios en Swarm](#-desplegando-servicios-en-swarm)
16
-
-[📊 Escalado y monitorización](#-escalado-y-monitorización)
17
-
-[🌐 Networking: Ingress vs Host](#-networking-ingress-vs-host)
18
-
-[📦 Docker Stacks](#-docker-stacks)
19
-
-[📚 Comandos Docker Compose más comunes](#-comandos-docker-compose-más-comunes)
20
-
-[📚 Comandos Docker Swarm más comunes](#-comandos-docker-swarm-más-comunes)
21
-
-[🎉 ¡Felicidades!](#-felicidades)
5
+
¡Hola lemoncoder 👋🏻🍋 ! Con esta clase finalizamos el repaso a los contenedores. Y ha llegado el momento de aprender qué es Docker Compose y nuestra primera expidición a los clústeres de Docker.
6
+
7
+
## 🎬 Vídeos de la introducción en el campus
8
+
9
+
Se asume que has visto los siguientes vídeos para comenzar con este módulo:
10
+
11
+
| # | Tema | Contenido Clave |
12
+
|---|------|-----------------|
13
+
| 1 | Teoría - Docker Compose | El por qué y para qué de Docker Compose |
14
+
| 2 | Demo 1 | Ejemplo sin Docker Compose |
15
+
| 3 | Demo 2 - Ejemplo de un Wordpress con Docker Compose |
16
+
| 4 | Teoría - Docker Swarm | Para qué sirve un clúster y cómo se gestiona |
17
+
| 5 | Demo 3 - Crear un clúster con Docker Swarm | Crear un cluster y ejecutar nuestra primera aplicación |
18
+
19
+
---
20
+
22
21
23
22
## 🏗️ Introducción a Docker Compose
24
23
25
-
Docker Compose es una herramienta que te permite definir y ejecutar aplicaciones Docker multi-contenedor. En lugar de ejecutar múltiples comandos `docker run`, puedes definir toda tu aplicación en un archivo YAML y levantarla con un solo comando.
24
+
Docker Compose es una herramienta que te permite definir y ejecutar aplicaciones Docker multi-contenedor. En lugar de ejecutar múltiples comandos `docker run`, `docker volume`, `docker network`, etc., puedes definir toda tu aplicación en un archivo YAML y levantarla con un solo comando.
26
25
27
26
### 🎯 Escenario: Blog con WordPress y MySQL
28
27
29
-
Imaginemos que queremos desplegar un blog con WordPress. Este necesita una base de datos MySQL para funcionar. Vamos a ver primero cómo hacerlo manualmente y luego con Docker Compose.
28
+
Para que lo entiendas perfectamente, imaginemos que queremos desplegar un blog con WordPress. Este necesita una base de datos MySQL para funcionar. Vamos a ver primero cómo hacerlo manualmente y luego con Docker Compose.
30
29
31
30
### 📝 Manual vs Docker Compose
32
31
@@ -82,6 +81,9 @@ Puedes verificar el contenido del volumen de WordPress:
82
81
docker exec wordpress ls -l /var/www/html
83
82
```
84
83
84
+
Y ahora si accedes a `http://localhost:8000` en tu navegador, deberías ver la pantalla de instalación de WordPress.
85
+
86
+
85
87
**Para limpiar todo este despliegue manual:**
86
88
87
89
```bash
@@ -98,7 +100,7 @@ Como puedes ver, ¡son muchos comandos para una aplicación simple! 😰
98
100
Ahora veamos cómo Docker Compose simplifica todo esto. Primero, echemos un vistazo al archivo de configuración:
99
101
100
102
```bash
101
-
cat docker-compose.yml
103
+
cat compose.yml
102
104
```
103
105
104
106
Este archivo define toda nuestra aplicación en un formato legible y mantenible.
@@ -123,8 +125,24 @@ docker compose up &
123
125
docker compose up -d
124
126
```
125
127
128
+
Cuando la tienes abierta descubrirás que en la parte inferior del terminal te propone tres comandos rápidos:
129
+
130
+
-`v` View in Docker Desktop: si pulsas esta tecla te lleva directamente a una vista donde verás los contenedores involucrados.
131
+
132
+
133
+

134
+
135
+
-`o` View Config: si pulsas esta tecla te lleva de nuevo a Docker Desktop pero esta vez a una vista donde verás el archivo Docker Compose y opciones adicionales para entenderlo e incluso para convertirlo a los archivos que un clúster de Kubernetes necesita.
-`watch` Enable Watch: si pulsas esta tecla se activa la funcionalidad de Compose Watch que veremos más adelante en este mismo documento y que es ideal para desarrollo.
140
+
126
141
**Parar la aplicación:**
127
142
143
+
Si quisieramos parar todos los contenedores, podríamos usar `Control + C` o `Cmd + C` si lo hemos levantado en primer plano, pero si lo hemos hecho en segundo plano:
144
+
145
+
128
146
```bash
129
147
docker compose stop
130
148
```
@@ -135,22 +153,54 @@ docker compose stop
135
153
docker compose down
136
154
```
137
155
138
-
## Compose Watch
156
+
Hurra! 🎉 Has desplegado una aplicación completa con solo unos pocos comandos y un archivo súper descriptivo que te ayuda a entender perfectamente qué necesita tu aplicación.
157
+
158
+
Ahora vamos a ver algunas funcionalidades avanzadas de Docker Compose.
159
+
160
+
### Configuraciones avanzadas de Docker Compose
161
+
162
+
Para esta sección vamos a usar otro ejemplo más complejo que puedes encontrar en `01-contenedores/contenedores-vi/my-app`, el cual contiene un frontend y un backend. Para levantarlo con docker compose, navega a esa carpeta y ejecuta:
163
+
164
+
```bash
165
+
cd 01-contenedores/contenedores-vi/my-app
166
+
docker compose up
167
+
```
168
+
169
+
170
+
### Docker Compose Watch
139
171
140
172
Docker Compose Watch permite que los servicios se actualicen automáticamente cuando editas archivos en tu proyecto. Es ideal para desarrollo, ya que puedes ver los cambios reflejados en los contenedores sin reiniciar manualmente.
141
173
142
-
Ventajas principales:
174
+
### 🔭 Ventajas de Docker Compose Watch
175
+
176
+
- 🔁 Sincronización automática de archivos entre tu máquina y el contenedor.
177
+
- 🚫 Posibilidad de ignorar carpetas (ej. node_modules/) para mejorar rendimiento.
178
+
- 🛠 Acciones soportadas: sync (sincronizar), rebuild (reconstruir imagen) y sync+restart (sincronizar y reiniciar servicio).
179
+
180
+
### ⚙️ Configuración básica
181
+
182
+
Añade la sección develop.watch en el servicio que quieres monitorizar dentro del archivo compose.watch.yml.
183
+
184
+
```yaml
185
+
services:
186
+
app:
187
+
build: .
188
+
develop:
189
+
watch:
190
+
- action: sync
191
+
path: ./src
192
+
target: /app/src
193
+
- action: rebuild
194
+
path: package.json
195
+
- action: sync+restart
196
+
path: ./config
197
+
```
143
198
144
-
Sincronización automática de archivos entre tu máquina y el contenedor.
145
-
Puedes ignorar carpetas (por ejemplo, node_modules/) para mejorar el rendimiento.
146
-
Permite acciones como sync (sincronizar), rebuild (reconstruir imagen) y sync+restart (sincronizar y reiniciar servicio).
147
-
Configuración básica:
199
+
### 🧪 Acciones
148
200
149
-
Se añade la sección develop.watch en el servicio que quieres monitorizar.
150
-
Ejemplo de acciones:
151
-
sync: Sincroniza archivos modificados.
152
-
rebuild: Reconstruye la imagen si se modifica un archivo clave (ej. package.json).
153
-
sync+restart: Sincroniza y reinicia el servicio (útil para cambios en config).
201
+
- sync: Copia al contenedor solo los archivos modificados.
202
+
- rebuild: Reconstruye la imagen si cambia un archivo clave (ej. package.json).
203
+
- sync+restart: Sincroniza y reinicia el servicio (útil para cambios de configuración).
154
204
155
205
156
206
Para poder usar Compose Watch debes tener una configuración como la que se ve en `compose.watch.yml`:
0 commit comments