TechLead
Lección 1 de 18
5 min de lectura
Docker

Introducción a Docker

Aprende qué es Docker, por qué importa en el desarrollo moderno y cómo funciona la contenedorización

¿Qué es Docker?

Docker es una plataforma de código abierto que automatiza el despliegue, escalado y gestión de aplicaciones usando contenedorización. Los contenedores empaquetan una aplicación y todas sus dependencias en una unidad estandarizada, asegurando que se ejecute de la misma manera en cualquier máquina — desde tu portátil hasta los servidores de producción.

¿Por qué Docker?

  • Consistencia: "Funciona en mi máquina" ya no es un problema — los contenedores se ejecutan idénticamente en todas partes
  • Aislamiento: Cada contenedor se ejecuta en su propio entorno, previniendo conflictos de dependencias
  • Portabilidad: Mueve contenedores entre desarrollo, staging y producción sin esfuerzo
  • Eficiencia: Los contenedores comparten el kernel del SO host y usan muchos menos recursos que las máquinas virtuales
  • Velocidad: Los contenedores inician en segundos, haciendo el desarrollo y despliegue mucho más rápido

Contenedores vs Máquinas Virtuales

Mientras que las máquinas virtuales (VMs) incluyen un sistema operativo invitado completo, los contenedores comparten el kernel del SO host y solo empaquetan la aplicación y sus dependencias. Esto hace que los contenedores sean significativamente más ligeros y rápidos.

Comparación

Característica Contenedor Máquina Virtual
Tiempo de inicioSegundosMinutos
TamañoMBsGBs
SOComparte kernel del hostSO invitado completo
AislamientoNivel de procesoAislamiento completo
RendimientoCasi nativoOverhead del hipervisor

Arquitectura de Docker

Docker usa una arquitectura cliente-servidor con estos componentes clave:

  • Docker Daemon (dockerd): Se ejecuta en el host y gestiona contenedores, imágenes, redes y volúmenes
  • Docker Client (docker): La herramienta CLI que usas para interactuar con el daemon
  • Docker Registry: Un repositorio para imágenes Docker (ej. Docker Hub)
  • Imágenes Docker: Plantillas de solo lectura usadas para crear contenedores
  • Contenedores Docker: Instancias en ejecución de imágenes

Instalación de Docker

macOS

# Instalar Docker Desktop para macOS
# Descargar desde https://www.docker.com/products/docker-desktop/
# O usar Homebrew:
brew install --cask docker

Linux (Ubuntu/Debian)

# Actualizar paquetes
sudo apt-get update

# Instalar dependencias
sudo apt-get install ca-certificates curl gnupg

# Agregar la clave GPG oficial de Docker
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# Configurar el repositorio
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Instalar Docker Engine
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Verificar la Instalación

# Verificar la versión de Docker
docker --version

# Ejecutar un contenedor de prueba
docker run hello-world

# Verificar información de Docker
docker info

Tu Primer Contenedor

# Descargar y ejecutar un servidor web nginx
docker run -d -p 8080:80 --name mi-web nginx

# ¡Visita http://localhost:8080 en tu navegador!

# Ver contenedores en ejecución
docker ps

# Detener el contenedor
docker stop mi-web

# Eliminar el contenedor
docker rm mi-web

Puntos Clave

  • ✅ Docker empaqueta aplicaciones en contenedores portátiles y aislados
  • ✅ Los contenedores son más ligeros y rápidos que las VMs
  • ✅ Docker asegura consistencia en todos los entornos
  • ✅ El ecosistema Docker incluye imágenes, contenedores, registros y herramientas de orquestación

Continuar Aprendiendo