Skills que aprenderás
Convocatorias
No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una convocatoria.
Recursos
No hay recursos disponibles todavía para esta convocatoria
Curso de nivel avanzado orientado a profesionales que ya construyen y distribuyen imágenes Docker y necesitan operar entornos multi-contenedor en producción con criterios de seguridad, eficiencia y automatización. El punto de partida es el dominio de Dockerfiles profesionales, registros y el ciclo de distribución; el objetivo es dar el salto a producción con todas las garantías: optimizar imágenes con multi-stage builds para reducir su tamaño y superficie de ataque, desplegar aplicaciones multi-contenedor con Docker Compose con dependencias y health checks correctamente configurados, aplicar prácticas de seguridad en contenedores, gestionar recursos y ciclo de vida con límites y políticas de reinicio, integrar Docker en pipelines de CI/CD automatizados, y diseñar procedimientos de despliegue y rollback reproducibles. Al finalizar, el participante será capaz de operar aplicaciones contenerizadas en producción de forma segura, automatizada y recuperable.
Al finalizar el curso, el participante será capaz de:
Multi-stage builds y optimización de imágenes Modelo de capas de Docker y por qué RUN rm -rf no reduce el tamaño de las capas anteriores; multi-stage builds: sintaxis de FROM ... AS <stage> y COPY --from=<stage>; separación entre stage de build (toolchain completo) y stage de producción (binario o artefacto); selección de imagen base para el stage de producción: scratch, distroless, alpine, slim; comparativa de tamaño antes/después con docker image ls; multi-stage builds para aplicaciones compiladas (Go, Java, Rust) y para aplicaciones con proceso de build (Node.js, Python con wheel)
Docker Compose para aplicaciones multi-contenedor docker-compose.yml v3: servicios, redes y volúmenes; healthcheck en el servicio de base de datos: pg_isready, redis-cli ping, endpoint HTTP; depends_on con condition: service_healthy para garantizar que el servicio dependiente espera a que el servicio requerido esté operativo; redes explícitas para aislamiento entre servicios: qué servicios se pueden ver entre sí; volúmenes nombrados para persistencia: diferencia con bind mounts; ports vs expose: cuándo exponer al host y cuándo mantener interno; fichero .env para variables de configuración por entorno
Seguridad en contenedores Ejecución como root: por qué aumenta el riesgo en producción; RUN useradd -r appuser y USER appuser en Dockerfile con permisos sobre el directorio de trabajo; secretos en capas de imagen: docker history --no-trunc para visualizar el riesgo; gestión de secretos en runtime: -e, fichero .env en Compose, Docker secrets (Swarm); ARG vs ENV para secretos en build time; escaneo básico de vulnerabilidades con docker scout o trivy
Gestión de recursos y ciclo de vida --memory y --memory-swap para limitar RAM y swap; --cpus para limitar uso de CPU; OOM killer y su comportamiento cuando el contenedor supera el límite de memoria; HEALTHCHECK en Dockerfile: CMD, --interval, --timeout, --retries; estados del contenedor: starting, healthy, unhealthy; políticas de reinicio: no, always, on-failure, unless-stopped — cuándo usar cada una; comportamiento en Compose vs docker run
CI/CD con Docker y GitHub Actions Estructura de un workflow de GitHub Actions para Docker: jobs build, test, push; needs para secuenciar jobs y condicionar el push al éxito de los tests; docker run imagen pytest para ejecutar tests dentro del contenedor construido; autenticación en Docker Hub con secrets de GitHub (DOCKER_USERNAME, DOCKER_PASSWORD); tag de imagen con SHA corto del commit (github.sha); docker/build-push-action para builds optimizados con caché de capas en CI; uso de --platform para builds multi-arquitectura (amd64/arm64)
Estrategia de despliegue y rollback Actualización de imagen en Compose con mínimo downtime: docker compose pull + docker compose up -d <servicio>; convención de tags para rollback posible: tags semánticos versionados y política de retención en el registro; procedimiento de rollback: cambiar tag en docker-compose.yml, pull y recrear contenedor; verificación post-despliegue: test de humo con curl o endpoint de health; criterio de rollback: quién decide, cuándo y cómo; diferencia entre rollback de aplicación (cambio de tag) y rollback de datos (requiere backup de BD)
→ DCK02 — Docker: Imágenes, Registros y Distribución (Intermedio, 8h)
docker inspect, docker logs y health checks