En este módulo aprenderás:
- Sincroniza tu código en tiempo real usando Bind Mounts y conecta contenedores con redes privadas.
- Comandos y configuraciones clave para 05. Volúmenes, Network y Hot Reload
- Ejercicios prácticos listos para probar en tu terminal local
Hot Reload y Redes Privadas
Mano, el verdadero flujo de desarrollo Ninja se logra cuando editas un archivo en tu editor de código (VS Code o Neovim) y el servidor dentro del contenedor se actualiza en menos de 100ms sin necesidad de volver a compilar la imagen.
Bind Mounts vs Named Volumes
- Bind Mounts (
- .:/app): Mapean una carpeta de tu disco local directamente dentro del contenedor. Es perfecto para sincronizar código fuente en tiempo real durante desarrollo. - Named Volumes (
postgres_data): Son gestionados internamente por Docker en una ruta optimizada. Ideales para persisitir datos de bases de datos.
Docker Compose Watch (La Nueva Forma Pro)
En Docker Compose v2.22+, puedes usar la funcionalidad watch nativa:
docker-compose.ymlyaml
services:
web:
build: .
command: pnpm dev
develop:
watch:
- action: sync
path: ./src
target: /app/src
- action: rebuild
path: package.json
# Iniciar con sincronización inteligente en tiempo real
docker compose watch
Redes Internas en Docker (bridge)
Todos los servicios definidos dentro del mismo docker-compose.yml se unen automáticamente a una red privada virtual. Puedes conectar tu aplicación a la base de datos usando simplemente el nombre del servicio (ej: db:5432) sin preocuparte por la IP del contenedor.
Inspeccionar logs cuando algo falla
Si tu contenedor se apaga de inmediato al levantarlo, ejecuta docker compose logs --tail=100 app para ver exactamente qué error arrojó el runtime.
Ejercicio Práctico Ninja 🥷
- Configura un bind mount
- .:/appen tu servicio de desarrollo. - Cambia una línea de texto en tu archivo fuente y comprueba en el navegador que el cambio se reflejó al instante.
- Revisa la red interna ejecutando
docker network ls.