🐋 Guía Completa de Docker Desktop

Instalación paso a paso para Windows con WSL 2

⚡ OBLIGATORIO ⚡
⚠️ IMPORTANTE: Docker Desktop es OBLIGATORIO para este proyecto. El sistema está diseñado para ejecutarse en contenedores Docker, lo que garantiza un entorno consistente y profesional para todos los estudiantes.
ℹ️ ¿Qué es Docker? Docker es una plataforma que permite ejecutar aplicaciones en contenedores aislados. Es la forma estándar en la industria para desplegar aplicaciones de forma profesional y escalable.

4.1. ¿Por qué es obligatorio Docker para este proyecto?

Ventajas de Docker Desktop (Razones de uso obligatorio)
  • 🎯 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

Verificar requisitos del sistema
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
⚠️ Si la virtualización está deshabilitada:
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)

ℹ️ ¿Qué es WSL 2? Es una capa de compatibilidad para ejecutar Linux dentro de Windows. Docker lo necesita para funcionar correctamente.
1 Abrir PowerShell como Administrador

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í"

📸 Verás una ventana azul con el símbolo PS C:\Windows\system32>
2 Instalar WSL 2

En la ventana de PowerShell (azul), copia y pega este comando:

# Instalar WSL 2 con Ubuntu wsl --install

¿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

3 Reiniciar la computadora
⚠️ IMPORTANTE: Después de que termine la instalación, aparecerá un mensaje pidiendo reiniciar. Guarda todo tu trabajo y reinicia ahora.
# O ejecuta este comando para reiniciar: Restart-Computer
4 Configurar Ubuntu (después del reinicio)

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:~$

💡 Nota: No verás la contraseña mientras la escribes. Es normal por seguridad. Solo escribe y presiona Enter.

Puedes cerrar esa ventana de Ubuntu. Ya está instalado y listo.

5 Verificar instalación de WSL 2

Abre una nueva ventana de PowerShell (normal, no como administrador) y ejecuta:

# Verificar versión de WSL wsl --version

# 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).

¡WSL 2 instalado correctamente! Ahora puedes instalar Docker Desktop.

4.4. Descargar Docker Desktop

1 Ir al sitio oficial de Docker

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)

💡 Opción B - Si ya tienes el instalador:
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

1 Ejecutar el instalador

Paso a paso detallado:

  1. Haz doble clic en el archivo "Docker Desktop Installer.exe"
  2. Si aparece la ventana de "Control de Cuentas de Usuario", haz clic en "Sí"
  3. Aparecerá la ventana de configuración de Docker Desktop
📸 Ventana: "Docker Desktop Installer - Configuration"
2 Configurar opciones de instalación

⚠️ 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

3 Esperar 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

Buen momento para: Tomar un café, estirar las piernas, revisar tus apuntes o ver un video corto. La instalación continuará automáticamente.
4 Reiniciar la computadora (OBLIGATORIO)

Cuando termine la instalación, aparecerá un mensaje similar a este:

✅ "Installation succeeded"
⚠️ "Docker Desktop requires a reboot to complete the installation"

⚠️ ACCIÓN REQUERIDA - Sigue estos pasos:
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

1 Primer inicio después del reinicio

Cuando Windows vuelva a iniciar:

  1. Busca el ícono de Docker en el escritorio (ballena azul con contenedores) 🐋
  2. Haz doble clic para abrir Docker Desktop
    Si no está en el escritorio, presiona Windows y busca "Docker Desktop"
  3. Espera unos 10-20 segundos mientras Docker inicia por primera vez
  4. Aparecerá la ventana de bienvenida de Docker Desktop
2 Aceptar términos y condiciones

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"

3 Configurar cuenta Docker Hub (opcional - recomendado omitir)

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.

4 Encuesta inicial de Docker (omitir)

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

5 Esperar que Docker inicie completamente

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 ✅
¡Docker Desktop instalado y corriendo!
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 Abrir una terminal de comandos

1. Presiona las teclas Windows + R
2. Escribe cmd
3. Presiona Enter
4. Se abrirá la ventana negra de comandos (CMD)

2 Verificar versión de Docker

Copia y pega este comando en la ventana negra:

# Verificar que Docker está instalado docker --version

Salida esperada (algo similar a):

Docker version 24.0.7, build afdd53b

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.

⚠️ Si sale un error: Asegúrate de que Docker Desktop esté abierto y corriendo (debe decir "Engine running"). Si no, ábrelo desde el menú inicio.
3 Verificar Docker Compose

Docker Compose es necesario para orquestar múltiples contenedores:

# Verificar Docker Compose (lo usaremos para el proyecto) docker-compose --version

Salida esperada:

Docker Compose version v2.23.0

Si ves la versión, significa que Docker Compose está instalado correctamente (viene incluido con Docker Desktop).

4 Probar Docker con un contenedor de prueba

Este comando descarga y ejecuta un contenedor de prueba simple para verificar que todo funciona:

# Descargar y ejecutar contenedor de prueba "hello-world" docker run hello-world

¿Qué pasará? (paso a paso):

  1. Docker buscará la imagen "hello-world" en tu computadora (no la encontrará)
  2. La descargará automáticamente de Docker Hub (solo ~2 KB, toma 2-3 segundos)
  3. Verás: Unable to find image 'hello-world:latest' locally
  4. Luego: latest: Pulling from library/hello-world
  5. Ejecutará el contenedor automáticamente
  6. Mostrará un mensaje de éxito
  7. El contenedor se detendrá automáticamente (ya hizo su trabajo)

Salida esperada completa:

Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 719385e32844: Pull complete Digest: sha256:... Status: Downloaded newer image for hello-world:latest
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...
5 Verificar que el contenedor se ejecutó correctamente

Para ver todos los contenedores que se han ejecutado (incluso los que ya terminaron):

# Ver todos los contenedores (activos e inactivos) docker ps -a

Deberías ver una tabla con el contenedor "hello-world" en estado Exited (0):

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES abc123def456 hello-world "/hello" 10 seconds ago Exited (0) 9 seconds ago eloquent_tesla

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

¡Docker funciona perfectamente!
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

1 Ajustar recursos de Docker (Recomendado si tienes 8+ GB RAM)

Si tu PC tiene 8 GB o más de RAM, puedes asignar más recursos a Docker para mejor rendimiento:

  1. Abre Docker Desktop (si lo cerraste)
  2. Haz clic en el ícono de engranaje ⚙️ (Settings) en la parte superior derecha
  3. Ve a la sección "Resources""Advanced" (en el menú izquierdo)
  4. 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)
  5. Haz clic en "Apply & restart" en la parte inferior derecha
  6. Espera unos segundos mientras Docker se reinicia
⚠️ No asignes toda tu RAM a Docker: Deja al menos 2-3 GB disponibles para Windows y otras aplicaciones. Si tienes 4 GB RAM total, deja los valores por defecto.
2 Habilitar integración con WSL (verificar)

Asegúrate de que Docker esté integrado correctamente con WSL 2:

  1. En Docker Desktop, haz clic en Settings ⚙️
  2. Ve a "Resources""WSL Integration"
  3. Verifica que esta opción esté activada:
    ☑️ "Enable integration with my default WSL distro"
  4. Si aparece "Ubuntu" en la lista de distribuciones, actívala también:
    ☑️ Ubuntu
  5. 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.

Diagrama de arquitectura
┌─────────────────────────────────────────────────────────┐
│                    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)

📋 Guarda esta referencia: Estos comandos te serán muy útiles durante todo el proyecto.
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

❌ Problema 1: "Docker Desktop requires Windows 10 Pro/Enterprise"
⚠️ Causa: Versión muy antigua de Docker Desktop.
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)
❌ Problema 2: "WSL 2 installation is incomplete"
⚠️ Causa: WSL 2 no está actualizado o configurado.
Solución:
# Abre PowerShell como administrador y ejecuta: wsl --update wsl --set-default-version 2
# Luego reinicia Docker Desktop
❌ Problema 3: "Docker daemon is not running" o "Cannot connect to Docker"
⚠️ Causa: Docker Desktop no está iniciado.
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
❌ Problema 4: Docker muy lento o se congela
⚠️ Causas comunes y soluciones:

• 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
❌ Problema 5: "Error response from daemon: pull access denied"
⚠️ Causa: Problema de red o nombre de imagen incorrecto.
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
❌ Problema 6: "Port is already allocated" (Puerto ya en uso)
⚠️ Causa: Ya tienes algo corriendo en ese puerto.
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
¡Docker instalado, configurado y funcionando completamente!

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.