Docker: La Base del DevOps Moderno
Docker revoluciono la forma en que empaquetamos y desplegamos software. Un contenedor es una unidad ligera y portatil que incluye todo lo necesario para ejecutar una aplicacion: codigo, runtime, librerias y configuracion. Esto elimina el clasico problema de funciona en mi maquina.
Por que Docker es Esencial
En el ecosistema de desarrollo de LATAM, Docker se ha convertido en el estandar. Segun encuestas de Stack Overflow 2025, el 78% de desarrolladores profesionales en la region usan contenedores en sus proyectos. Empresas como Mercado Libre, Globant, Rappi y Nubank tienen toda su infraestructura containerizada.
| Concepto | Descripcion | Analogia |
|---|---|---|
| Imagen | Template inmutable con todo el software | Receta de cocina |
| Contenedor | Instancia en ejecucion de una imagen | Plato servido |
| Dockerfile | Instrucciones para construir imagen | Pasos de la receta |
| Registry | Repositorio de imagenes (Docker Hub) | Libro de recetas |
| Volumen | Almacenamiento persistente | Refrigerador (persiste) |
# Dockerfile para app Node.js de produccion
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
RUN npm run build
FROM node:20-alpine
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/package.json ./
EXPOSE 3000
USER node
CMD ["node", "dist/server.js"]🚀 Dato Clave
Usa multi-stage builds para reducir el tamano de tus imagenes hasta 10x. La imagen de arriba pesa ~150MB vs ~1.2GB sin multi-stage. En LATAM donde el ancho de banda puede ser costoso, esto es critico.
# Comandos Docker esenciales
docker build -t mi-app:1.0 .
docker run -d -p 3000:3000 --name app mi-app:1.0
docker logs app --tail 50
docker exec -it app sh
docker stop app && docker rm app
# Limpiar recursos
docker system prune -aDocker es el primer paso en tu camino DevOps. En la siguiente leccion construiremos entornos completos con Docker Compose.