En este módulo aprenderás:
- Elimina los problemas de compatibilidad entre sistemas operativos aislando dependencias en contenedores.
- Comandos y configuraciones clave para 01. Por qué Docker y no instalar todo nativo
- Ejercicios prácticos listos para probar en tu terminal local
Habla causa: ¿Por qué “en mi máquina sí funciona” ya no es una excusa válida?
Mano, ¿cuántas veces has levantado un proyecto en tu laptop y cuando lo pasaste al servidor de staging o a la laptop de tu compañero de trabajo, explotó porque él tenía PostgreSQL 14 y tú tenías PostgreSQL 16?
Docker resuelve este dolor creando contenedores aislados que empaquetan tu código junto con sus dependencias exactas del sistema operativo.
mise-terminal ~ zsh
~/my-project❯
Conceptos Fundamentales de Docker
- Imagen (Image): Es la plantilla de solo lectura que contiene tu código, runtime, librerías y variables (ej:
node:22-alpineopostgres:16). - Contenedor (Container): Es una instancia en ejecución de una imagen. Es super ligero y arranca en menos de 1 segundo.
- Registry: El almacén central de imágenes (como Docker Hub o GitHub Container Registry).
Comparativa: Máquina Virtual vs Contenedor
| Característica | Máquina Virtual (VM) | Contenedor (Docker) |
|---|---|---|
| Arquitectura | Incluye un SO completo (Hypervisor) | Comparte el Kernel del SO anfitrión |
| Consumo de RAM | Gigabytes por instancia | Megabytes por instancia |
| Tiempo de Inicio | 1 a 3 minutos | < 1 segundo |
| Portabilidad | Archivos .iso/.vmdk pesados | Imágenes ligeras compuestas por capas |
check-docker.shbash
# Verificar la versión instalada de Docker
docker --version
# Listar contenedores en ejecución activa
docker ps
# Listar todas las imágenes descargadas en tu máquina
docker images
Docker no reemplaza a mise
mise administra tus versiones de desarrollo local nativas (Node, Python, Go) para programar con autocompletado en tu editor. Docker gestiona los servicios externos (PostgreSQL, Redis) o la empaquetación final. ¡Usar ambos juntos es el combo perfecto!
Ejercicio Práctico Ninja 🥷
- Abre tu terminal y ejecuta
docker --version. - Prueba correr
docker run --rm hello-worldy observa cómo Docker descarga la imagen y muestra el mensaje oficial de prueba. - Corre
docker ps -apara ver los contenedores que se han ejecutado.