Plataforma de contenedores que empaqueta aplicaciones con todas sus dependencias en unidades portables y consistentes que se ejecutan igual en cualquier entorno.
Docker es una plataforma que permite empaquetar aplicaciones en contenedores — unidades ligeras que incluyen el código, runtime, bibliotecas y configuración necesarios para ejecutarse. Un contenedor se ejecuta igual en tu laptop, en CI/CD y en producción.
| Concepto | Función | Ejemplo |
|---|---|---|
| Image | Plantilla inmutable con el sistema de archivos | node:22-alpine, imagen custom |
| Container | Instancia en ejecución de una imagen | docker run my-app |
| Dockerfile | Receta para construir una imagen | FROM, COPY, RUN, CMD |
| Registry | Repositorio de imágenes | Docker Hub, ECR, GHCR |
| Volume | Almacenamiento persistente fuera del contenedor | Datos de base de datos, uploads |
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]| Aspecto | Docker | VM |
|---|---|---|
| Overhead | Mínimo (comparte kernel) | Alto (OS completo) |
| Startup | Segundos | Minutos |
| Tamaño | MBs | GBs |
| Aislamiento | Proceso | Hardware |
Docker estandarizó el empaquetado de aplicaciones. Un contenedor funciona igual en desarrollo, CI y producción. Esta consistencia eliminó una categoría entera de bugs de entorno y habilitó prácticas como CI/CD, microservicios e infraestructura inmutable.
Especificación para definir entornos de desarrollo reproducibles en contenedores, eliminando el problema de 'funciona en mi máquina' y acelerando el onboarding.
Servicio de orquestación de contenedores de AWS que ejecuta y escala aplicaciones Docker sin gestionar la infraestructura de cluster subyacente.
Enfoque de desarrollo que aprovecha las ventajas de la nube: contenedores, microservicios, infraestructura inmutable y automatización declarativa para sistemas escalables y resilientes.
Repositorios para almacenar, versionar y distribuir imágenes de contenedores, desde registros públicos como Docker Hub hasta registros privados como ECR.
Prácticas y herramientas para asegurar contenedores en todo su ciclo de vida: construcción de imágenes, runtime, orquestación y cumplimiento.
Plataforma de orquestación de contenedores que automatiza el despliegue, escalado y gestión de aplicaciones containerizadas a escala, convirtiéndose en el estándar de facto para cloud native.
Herramienta para definir y ejecutar aplicaciones multi-contenedor con un archivo YAML, simplificando el desarrollo local de sistemas con múltiples servicios.
Motor de cómputo serverless para contenedores que elimina la necesidad de gestionar servidores, permitiendo ejecutar contenedores Docker pagando solo por los recursos consumidos.