4.1. ¿Por qué es obligatorio Docker para este proyecto?
- 🎯 Consistencia Total: Mismo entorno para todos los estudiantes
- 🎯 Configuración Automática: MySQL, Django, Nginx y Redis pre-configurados
- 🎯 Evita Conflictos: No interfiere con otras instalaciones en tu PC
- 🎯 Despliegue Instantáneo: Todo listo con un solo comando
- 🎯 Simula Producción Real: Arquitectura profesional de microservicios
- 🎯 Balanceo de Carga: Nginx distribuye peticiones automáticamente
- 🎯 Fácil Reset: Borra y recrea el ambiente en segundos
- 🎯 Estándar Profesional: Tecnología usada en empresas reales
💡 Ventaja Principal
Con Docker, tu proyecto funcionará exactamente igual en tu computadora, en la de tu profesor y en cualquier servidor de producción. No más problemas de "en mi máquina funciona".
4.2. Requisitos previos para Docker
| Requisito | Mínimo | ¿Cómo verificar? |
|---|---|---|
| Sistema Operativo | Windows 10/11 (64-bit) | Presiona Win + Pause |
| RAM | 4 GB (8 GB recomendado) | Presiona Win + Pause |
| Virtualización | Habilitada en BIOS | Abre "Administrador de Tareas" → Pestaña "Rendimiento" → CPU → Debe decir "Virtualización: Habilitada" |
| WSL 2 | Necesario para Windows | Se instalará en el siguiente paso |
1. Reinicia tu PC
2. Entra a la BIOS (presiona F2, F10, F12 o DEL al iniciar, depende de tu marca de PC)
3. Busca "Virtualization Technology", "VT-x", "AMD-V" o "SVM" y habilítala
4. Guarda cambios (usualmente F10) y reinicia
4.3. Instalar WSL 2 (Windows Subsystem for Linux)
Paso a paso:
1. Presiona la tecla Windows
2. Escribe PowerShell
3. Haz clic derecho en "Windows PowerShell"
4. Selecciona "Ejecutar como administrador"
5. Si aparece un mensaje de Control de Cuentas de Usuario, haz clic en "Sí"
En la ventana de PowerShell (azul), copia y pega este comando:
¿Qué verás?
• Verás mensajes como "Descargando: Windows Subsystem for Linux"
• El proceso tomará 5-10 minutos dependiendo de tu conexión a internet
• Descargará e instalará Ubuntu automáticamente
• Puede pedir reiniciar la PC
Después de reiniciar tu PC:
1. Se abrirá automáticamente una ventana de Ubuntu (terminal negra)
2. Esperará unos segundos instalando componentes
3. Te pedirá crear un usuario UNIX:
• Usuario: estudiante (o el que prefieras, sin espacios)
• Contraseña: 123456 (o la que prefieras)
• Repetir contraseña: escribe la misma contraseña
4. Cuando termine, verás algo como: estudiante@TU-PC:~$
Puedes cerrar esa ventana de Ubuntu. Ya está instalado y listo.
Abre una nueva ventana de PowerShell (normal, no como administrador) y ejecuta:
# Ver distribuciones Linux instaladas wsl --list --verbose
Salida esperada:
Deberías ver algo como:
* Ubuntu Running 2
El "2" al final indica que está usando WSL 2 (correcto).
4.4. Descargar Docker Desktop
Opción A - Descarga desde el navegador:
1. Abre tu navegador web (Chrome, Firefox, Edge, etc.)
2. Ve a: https://www.docker.com/products/docker-desktop/
3. Haz clic en el botón azul grande "Download for Windows"
4. Se descargará el archivo "Docker Desktop Installer.exe" (~500 MB)
5. Espera a que termine la descarga (5-15 minutos según tu velocidad de internet)
Si ya tienes el archivo "Docker Desktop Installer.exe" en tu carpeta del proyecto o en Descargas, puedes usarlo directamente (pasa al siguiente paso).
4.5. Instalar Docker Desktop
Paso a paso detallado:
- Haz doble clic en el archivo "Docker Desktop Installer.exe"
- Si aparece la ventana de "Control de Cuentas de Usuario", haz clic en "Sí"
- Aparecerá la ventana de configuración de Docker Desktop
⚠️ IMPORTANTE - Marca estas opciones:
☑️ Use WSL 2 instead of Hyper-V (recomendado)
→ Esta opción DEBE estar marcada si instalaste WSL 2
☑️ Add shortcut to desktop
→ Crea un acceso directo en el escritorio (opcional pero útil)
3. Haz clic en el botón "Ok" para iniciar la instalación
Durante la instalación verás:
- "Unpacking files..." (Descomprimiendo archivos) → 1-2 minutos
- "Installing..." (Instalando) → 3-5 minutos
- "Configuring..." (Configurando) → 1-2 minutos
Tiempo total: 5-10 minutos dependiendo de la velocidad de tu PC
Cuando termine la instalación, aparecerá un mensaje similar a este:
✅ "Installation succeeded"
⚠️ "Docker Desktop requires a reboot to complete the installation"
1. Guarda TODO tu trabajo (documentos abiertos, pestañas del navegador, etc.)
2. Cierra todas las aplicaciones que tengas abiertas
3. Haz clic en el botón "Close and restart"
4. Tu PC se reiniciará automáticamente en unos segundos
5. Espera a que Windows vuelva a iniciar completamente (1-3 minutos)
4.6. Configuración inicial de Docker Desktop
Cuando Windows vuelva a iniciar:
- Busca el ícono de Docker en el escritorio (ballena azul con contenedores) 🐋
- Haz doble clic para abrir Docker Desktop
Si no está en el escritorio, presionaWindowsy busca "Docker Desktop" - Espera unos 10-20 segundos mientras Docker inicia por primera vez
- Aparecerá la ventana de bienvenida de Docker Desktop
1. Aparecerá una ventana con los términos de servicio de Docker
2. Lee los términos (o no, seamos honestos 😄)
3. Marca la casilla ☑️ "I accept the terms"
4. Haz clic en el botón "Accept"
Aparecerá una ventana preguntando si quieres iniciar sesión o crear una cuenta de Docker Hub:
Opción A - Sin cuenta (⭐ Recomendado para comenzar rápido):
- Haz clic en "Skip" o "Continue without signing in"
- Podrás usar Docker completamente sin cuenta
- Puedes crear cuenta después si lo necesitas (no es necesario para este proyecto)
Opción B - Con cuenta (Opcional):
- Haz clic en "Sign up" para crear una cuenta gratuita de Docker Hub
- Ingresa: email, nombre de usuario, contraseña
- Verifica tu email (recibirás un correo de confirmación)
- Regresa a Docker Desktop e inicia sesión
💡 Nuestra recomendación
Por ahora, haz clic en "Skip". No necesitas una cuenta de Docker Hub para usar Docker localmente en tu proyecto.
Docker puede mostrar una breve encuesta preguntando:
- "What will you be using Docker for?" (¿Para qué usarás Docker?)
- "What is your role?" (¿Cuál es tu rol?)
Puedes:
• Responderla si quieres (selecciona "Learning" / "Student")
• O simplemente haz clic en "Skip" en la parte inferior
Verás la interfaz principal de Docker Desktop con:
En la parte inferior izquierda de la ventana, verás el estado:
- 🔴 "Starting..." (Iniciando) → Espera pacientemente 1-2 minutos
- 🟡 "Starting Docker Desktop..." (Iniciando servicios) → Casi listo, unos segundos más
- 🟢 "Docker Desktop is running" o "Engine running" → ¡Listo para usar!
También verás el ícono de Docker en la bandeja del sistema (esquina inferior derecha de Windows):
- 🐋 Ballena animándose = Docker está iniciando
- 🐋 Ballena estática = Docker corriendo correctamente ✅
Cuando veas "Docker Desktop is running" en verde, Docker está listo para usar.
Puedes minimizar la ventana de Docker Desktop, seguirá corriendo en segundo plano.
4.7. Verificar instalación de Docker
1. Presiona las teclas Windows + R
2. Escribe cmd
3. Presiona Enter
4. Se abrirá la ventana negra de comandos (CMD)
Copia y pega este comando en la ventana negra:
Salida esperada (algo similar a):
Los números de versión pueden variar (puede ser 24.0.6, 25.0.0, etc.). Lo importante es que NO salga un mensaje de error.
Docker Compose es necesario para orquestar múltiples contenedores:
Salida esperada:
Si ves la versión, significa que Docker Compose está instalado correctamente (viene incluido con Docker Desktop).
Este comando descarga y ejecuta un contenedor de prueba simple para verificar que todo funciona:
¿Qué pasará? (paso a paso):
- Docker buscará la imagen "hello-world" en tu computadora (no la encontrará)
- La descargará automáticamente de Docker Hub (solo ~2 KB, toma 2-3 segundos)
- Verás:
Unable to find image 'hello-world:latest' locally - Luego:
latest: Pulling from library/hello-world - Ejecutará el contenedor automáticamente
- Mostrará un mensaje de éxito
- El contenedor se detendrá automáticamente (ya hizo su trabajo)
Salida esperada completa:
Hello from Docker! This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. 3. The Docker daemon created a new container from that image... 4. The Docker daemon streamed that output to the Docker client...
Para ver todos los contenedores que se han ejecutado (incluso los que ya terminaron):
Deberías ver una tabla con el contenedor "hello-world" en estado Exited (0):
Explicación:
• CONTAINER ID: Identificador único del contenedor
• IMAGE: Imagen usada (hello-world)
• STATUS: Exited (0) significa que terminó correctamente
• NAMES: Nombre aleatorio asignado por Docker
Si viste el mensaje "Hello from Docker!", tu instalación está completamente funcional.
Ahora puedes crear y ejecutar contenedores para tu proyecto.
4.8. Configuración adicional recomendada
Si tu PC tiene 8 GB o más de RAM, puedes asignar más recursos a Docker para mejor rendimiento:
- Abre Docker Desktop (si lo cerraste)
- Haz clic en el ícono de engranaje ⚙️ (Settings) en la parte superior derecha
- Ve a la sección "Resources" → "Advanced" (en el menú izquierdo)
- Ajusta los siguientes valores:
• CPUs: 2-4 (dependiendo de cuántos núcleos tenga tu procesador)
• Memory: 4-6 GB (si tienes 8-16 GB RAM total)
• Swap: 1 GB
• Disk image size: 64 GB (el valor por defecto está bien) - Haz clic en "Apply & restart" en la parte inferior derecha
- Espera unos segundos mientras Docker se reinicia
Asegúrate de que Docker esté integrado correctamente con WSL 2:
- En Docker Desktop, haz clic en Settings ⚙️
- Ve a "Resources" → "WSL Integration"
- Verifica que esta opción esté activada:
☑️ "Enable integration with my default WSL distro" - Si aparece "Ubuntu" en la lista de distribuciones, actívala también:
☑️ Ubuntu - Haz clic en "Apply & restart"
4.9. ¿Qué hace nuestro sistema con Docker?
📦 Arquitectura del proyecto con Docker
Nuestro proyecto incluye archivos de configuración que permiten desplegar
toda la infraestructura automáticamente:
• Dockerfile: Define cómo construir la imagen de Django con todas sus dependencias
• docker-compose.yml: Orquesta 4 servicios que trabajan juntos:
1. 🗄️ MySQL - Base de datos relacional
2. 🐍 Django Web - Aplicación principal (REST API + SOAP)
3. 🌐 Nginx - Servidor web y balanceador de carga
4. 🔴 Redis - Sistema de caché (opcional pero útil)
Con un solo comando docker-compose up se levanta todo el sistema completo
y en 2-3 minutos está funcionando.
┌─────────────────────────────────────────────────────────┐
│ NAVEGADOR WEB │
│ http://localhost or :8000 │
└────────────────────┬────────────────────────────────────┘
│
▼
┌───────────────────────┐
│ NGINX (Puerto 80) │ ← Balanceador de carga
│ Servidor web │
└───────────┬───────────┘
│
┌───────────┴───────────┐
│ │
▼ ▼
┌─────────────────┐ ┌─────────────────┐
│ DJANGO WEB #1 │ │ DJANGO WEB #2 │ ← Escalable
│ (Puerto 8000) │ │ (Puerto 8001) │
│ REST + SOAP │ │ REST + SOAP │
└────────┬────────┘ └────────┬────────┘
│ │
└───────────┬───────────┘
│
┌───────────┴───────────┐
│ │
▼ ▼
┌─────────────────┐ ┌─────────────────┐
│ MySQL DB │ │ Redis Cache │
│ (Puerto 3306) │ │ (Puerto 6379) │
│ Datos │ │ Sesiones │
└─────────────────┘ └─────────────────┘
4.10. Comandos útiles de Docker (Referencia rápida)
| Comando | Descripción | Cuándo usarlo |
|---|---|---|
docker ps |
Ver contenedores en ejecución | Verificar qué está corriendo |
docker ps -a |
Ver todos los contenedores | Ver historial completo |
docker images |
Ver imágenes descargadas | Ver qué imágenes tienes |
docker-compose up |
Iniciar todos los servicios | Levantar el proyecto completo |
docker-compose up -d |
Iniciar en segundo plano | No bloquear la terminal |
docker-compose down |
Detener todos los servicios | Apagar todo el sistema |
docker-compose logs |
Ver logs de los servicios | Depurar errores |
docker-compose logs -f |
Ver logs en tiempo real | Monitorear actividad |
docker-compose restart |
Reiniciar servicios | Aplicar cambios |
docker system prune |
Limpiar contenedores viejos | Liberar espacio en disco |
4.11. Solución de problemas comunes de Docker
Solución:
• Las versiones nuevas de Docker (2020+) funcionan con Windows Home si tienes WSL 2
• Descarga la versión más reciente desde
docker.com• Asegúrate de tener WSL 2 instalado (sección 4.3 de esta guía)
Solución:
# Luego reinicia Docker Desktop
Solución:
1. Busca Docker Desktop en el menú inicio y ábrelo
2. Espera a que aparezca "Engine running" en verde
3. Si no inicia, intenta reiniciar tu PC
4. Si persiste, desinstala y reinstala Docker Desktop
• Poca RAM asignada: Aumenta en Settings → Resources → Advanced
• Antivirus bloqueando: Agrega una excepción para Docker en tu antivirus
• Disco lleno: Libera espacio en disco C:\ (necesitas al menos 10 GB libres)
• Demasiados contenedores: Ejecuta
docker system prune -a
Solución:
1. Verifica tu conexión a internet
2. Verifica que escribiste bien el nombre de la imagen
3. Intenta con:
docker pull hello-world para probar la conexión
Solución:
1. Para MySQL (puerto 3306): Cierra MySQL local si lo tienes abierto
2. Para Django (puerto 8000): Detén otros servidores Django
3. O cambia el puerto en
docker-compose.yml
Resumen de lo que lograste:
✅ WSL 2 instalado y configurado
✅ Docker Desktop instalado y corriendo
✅ Docker funcionando correctamente (probado con hello-world)
✅ Docker Compose disponible para orquestar servicios
✅ Sistema listo para desplegar el proyecto
Próximos pasos: Continúa con la siguiente sección para crear el proyecto Django. En la sección 16.6 aprenderás a usar Docker para desplegar todo el sistema (Django + MySQL + Nginx + Redis) con un solo comando.
Por ahora, solo necesitas que Docker Desktop esté instalado y corriendo. Puedes minimizar Docker Desktop, seguirá funcionando en segundo plano.