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
Enhance README.md with practical examples for bind mounts and volumes, including live development scenarios, backup and restore procedures, and data migration techniques.
🔄 Si cambias el contenido de la carpeta `web-content` en tu máquina local, también cambiará en la carpeta `/usr/share/nginx/html/` en tu contenedor.
69
69
70
+
### 🚀 Ejemplo práctico: Desarrollo en vivo
71
+
72
+
Vamos a ver el poder de los bind mounts para desarrollo. Con el contenedor corriendo, edita el archivo `web-content/index.html`:
73
+
74
+
```bash
75
+
# Edita el archivo (puedes usar cualquier editor)
76
+
echo"<h1>¡Cambio en vivo!</h1><p>Hora actual: $(date)</p>"> web-content/index.html
77
+
78
+
# Recarga la página en http://localhost:8081 y verás el cambio inmediatamente
79
+
```
80
+
81
+
**🎯 Casos de uso reales para bind mounts:**
82
+
-**Desarrollo web**: Cambios instantáneos sin rebuild
83
+
-**Configuración**: Archivos de config externos al contenedor
84
+
-**Logs**: Acceder a logs desde el host
85
+
-**Scripts**: Ejecutar scripts del host en contenedor
86
+
87
+
⚠️ **Limitaciones en producción:**
88
+
- Dependencia del filesystem del host
89
+
- Problemas de permisos entre sistemas
90
+
- No funciona bien en clusters distribuidos
91
+
70
92
#### Usar el bind mount como read-only
71
93
72
94
También puedes montar un bind mount como read-only. Esto significa que desde tu máquina podrás cambiar el contenido sin problemas pero desde dentro del contenedor no se podrá. 🔒 Para hacerlo, añade la opción `readonly` al comando `--mount`. Por ejemplo:
La última forma de almacenar datos en Docker es utilizando un tmpfs mount. Un tmpfs mount es un sistema de archivos temporal que se almacena en la memoria RAM de tu host. ⚡ Esto significa que si apagas tu máquina, perderás todos los datos que hayas almacenado en tu contenedor.
CPU_USAGE=$(docker stats --no-stream --format "{{.CPUPerc}}" ping-service | sed 's/%//')
440
+
if(( $(echo "$CPU_USAGE>80" | bc -l) ));then
441
+
echo"⚠️ ALERTA: CPU al ${CPU_USAGE}%"
442
+
fi
443
+
```
444
+
265
445
## 🔌 Docker extensions
266
446
267
447
Existen varias extensiones de Docker que nos permiten monitorizar nuestros contenedores de una forma más visual. 🎨 Puedes encontrarlas en el apartado de extensiones de Docker Desktop o a través del marketplace: https://hub.docker.com/search?q=&type=extension&sort=pull_count&order=desc
448
+
449
+
### 🌟 Extensiones recomendadas
450
+
451
+
**Para monitorización:**
452
+
-**Disk usage**: Visualiza el uso de espacio de Docker
453
+
-**Logs Explorer**: Interfaz avanzada para análisis de logs
454
+
-**Resource Usage**: Gráficos de CPU, memoria y red
455
+
456
+
**Para desarrollo:**
457
+
-**Volumes Backup & Share**: Backup y compartir volúmenes fácilmente
458
+
-**Docker Scout**: Análisis de vulnerabilidades en imágenes
459
+
460
+
### 🎯 Ejercicios prácticos para consolidar
461
+
462
+
**Ejercicio 1: Setup de desarrollo completo**
463
+
```bash
464
+
# 1. Crear un bind mount para desarrollo web
465
+
# 2. Editar archivos en vivo y ver cambios
466
+
# 3. Configurar logs en tiempo real
467
+
# 4. Monitorizar recursos mientras desarrollas
468
+
```
469
+
470
+
**Ejercicio 2: Gestión de datos empresarial**
471
+
```bash
472
+
# 1. Crear volúmenes para datos persistentes
473
+
# 2. Hacer backup de volúmenes
474
+
# 3. Simular fallo y recuperación
475
+
# 4. Compartir datos entre múltiples servicios
476
+
```
477
+
478
+
**Ejercicio 3: Optimización y monitorización**
479
+
```bash
480
+
# 1. Usar tmpfs para cachés temporales
481
+
# 2. Monitorizar uso de recursos
482
+
# 3. Analizar logs para troubleshooting
483
+
# 4. Limpiar sistema manteniendo lo esencial
484
+
```
485
+
486
+
> [!TIP]
487
+
> 💡 **Consejo final**: En producción, siempre usa volúmenes para datos críticos, bind mounts solo para desarrollo, y tmpfs para datos temporales que requieren alto rendimiento.
488
+
489
+
<!--
490
+
## ⏱️ Distribución temporal sugerida (3 horas)
491
+
492
+
**Primera hora (60 min):**
493
+
- 🔗 Bind mounts completo (45 min)
494
+
- Explicación conceptual (10 min)
495
+
- Práctica con --mount (15 min)
496
+
- Práctica con -v (10 min)
497
+
- Read-only bind mount (10 min)
498
+
- ☕ Mini break (15 min)
499
+
500
+
**Segunda hora (60 min):**
501
+
- 💾 Volúmenes - Parte 1 (60 min)
502
+
- Crear y usar volúmenes básicos (30 min)
503
+
- Volúmenes automáticos (15 min)
504
+
- Compartir entre contenedores (15 min)
505
+
506
+
**Tercera hora (60 min):**
507
+
- 💾 Volúmenes - Parte 2 (20 min)
508
+
- Inspección y limpieza
509
+
- 🧠 Tmpfs mount (15 min)
510
+
- 📊 Monitorización (20 min)
511
+
- Sesión práctica con docker events, stats, logs
512
+
- 🔌 Docker extensions + tiempo libre (5 min)
513
+
514
+
**Tiempo de buffer: ~30 minutos** - Perfecto para experimentación extra
0 commit comments