Saltar al contenido principal
MDev Env Pro
Curso: Docker para Devs14% Completado

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

  1. Imagen (Image): Es la plantilla de solo lectura que contiene tu código, runtime, librerías y variables (ej: node:22-alpine o postgres:16).
  2. Contenedor (Container): Es una instancia en ejecución de una imagen. Es super ligero y arranca en menos de 1 segundo.
  3. 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

Ejercicio Práctico Ninja 🥷

  1. Abre tu terminal y ejecuta docker --version.
  2. Prueba correr docker run --rm hello-world y observa cómo Docker descarga la imagen y muestra el mensaje oficial de prueba.
  3. Corre docker ps -a para ver los contenedores que se han ejecutado.