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

Buenas Prácticas de Seguridad en Docker

Asegura tus contenedores e imágenes Docker con buenas prácticas para despliegues en producción

¿Por qué Importa la Seguridad en Docker?

Los contenedores comparten el kernel del host, por lo que una vulnerabilidad en un contenedor puede potencialmente afectar todo el sistema host. Seguir buenas prácticas de seguridad es esencial para despliegues en producción.

1. No Ejecutar como Root

# ✅ Crear y usar un usuario no-root
FROM node:20-alpine
RUN addgroup -S appgroup && adduser -S appuser -G appgroup
WORKDIR /app
COPY --chown=appuser:appgroup . .
RUN npm ci --production
USER appuser
CMD ["node", "server.js"]

2. Usar Imágenes Base Mínimas

# ❌ Imagen completa con herramientas innecesarias
FROM node:20          # ~1 GB

# ✅ Variante Alpine
FROM node:20-alpine   # ~130 MB

# ✅✅ Distroless (aún más seguro)
FROM gcr.io/distroless/nodejs20

3. Escanear Imágenes en Busca de Vulnerabilidades

# Escanear con Docker Scout
docker scout cves miapp:latest

# Escanear con Trivy
trivy image miapp:latest

4. Nunca Almacenar Secretos en Imágenes

# ❌ NUNCA hagas esto
ENV API_KEY=sk-1234567890

# ✅ Pasar secretos en tiempo de ejecución
# docker run -e API_KEY=sk-xxx miapp

Lista de Verificación de Seguridad

Lista de Verificación de Seguridad para Producción

  • ☐ Usar usuario no-root en contenedores
  • ☐ Usar imágenes base mínimas (Alpine o Distroless)
  • ☐ Escanear imágenes regularmente
  • ☐ Nunca incluir secretos en las imágenes
  • ☐ Fijar versiones de imágenes (no usar latest)
  • ☐ Usar sistema de archivos de solo lectura cuando sea posible
  • ☐ Establecer límites de recursos (CPU, memoria)
  • ☐ Usar builds multi-etapa para minimizar superficie de ataque

Continuar Aprendiendo