Temario del curso
Introducción
- Introducción a los conceptos y flujos de trabajo avanzados de Docker
- Repaso de los principios y casos de uso de la contenedorización
- Terminología de Docker y componentes principales
- Resumen de los objetivos del curso y del entorno práctico
Visión general de las características y arquitectura de Docker
- Motor de Docker (Docker Engine) y sus componentes
- Cliente de Docker, demonio, imágenes, contenedores y registros
- Arquitectura de Docker y ciclo de vida de los contenedores
- Docker Hub y registros privados
- Fundamentos de la CLI de Docker para usuarios avanzados
- Gestión de recursos y configuraciones de Docker
Configuración de Docker
- Instalación de la Edición Comunitaria de Docker (Community Edition)
- Configuración del entorno de Docker
- Verificación de la instalación de Docker
- Configuración de Docker para desarrollo y pruebas
- Gestión de la configuración y el almacenamiento de Docker
- Introducción al diagnóstico de problemas en el entorno de Docker
Creación de sus propias imágenes de Docker
- Comprensión de las imágenes y capas de Docker
- Escritura de Dockerfiles efectivos
- Instrucciones de Dockerfile y mejores prácticas
- Gestión del contexto de compilación (build context)
- Compilación y etiquetado de imágenes
- Uso de
.dockerignore - Optimización del tamaño de la imagen y del rendimiento de compilación
- Gestión de versiones y etiquetas de imágenes
- Compilaciones multi-estadio (multi-stage) de Docker
- Publicación de imágenes en un registro de contenedores
Ejecución de aplicaciones Docker multi-contenedor con Docker Compose
- Introducción a Docker Compose
- Definición de servicios con archivos de Compose
- Configuración de redes y volúmenes
- Gestión de variables de entorno
- Dependencias de servicios y orden de inicio
- Ejecución y escalado de múltiples servicios
- Compilación de imágenes de aplicaciones con Compose
- Gestión de la configuración de la aplicación
- Depuración de aplicaciones multi-contenedor
- Mejores prácticas de Compose
Los desafíos de desplegar muchas aplicaciones Docker
- Gestión de contenedores en múltiples hosts
- Escala y disponibilidad de aplicaciones
- Descubrimiento de servicios (service discovery)
- Balanceo de carga
- Gestión de configuración y secretos
- Desafíos del almacenamiento persistente
- Monitoreo y registros a gran escala
- Actualizaciones progresivas (rolling updates) y despliegue de aplicaciones
- Recuperación ante fallos de contenedores y hosts
Cómo la orquestación de contenedores le ayuda a mantener el control
- Introducción a la orquestación de contenedores
- Beneficios y limitaciones de la orquestación
- Comparación entre Docker Swarm, Kubernetes y otras soluciones
- Programación (scheduling) y gestión de cargas de trabajo
- Descubrimiento de servicios y redes
- Escalado y auto-saneamiento (self-healing) de aplicaciones
- Despliegues progresivos y reversión (rollbacks)
- Gestión de recursos y aislamiento de cargas de trabajo
- Selección de una plataforma de orquestación adecuada
Kubernetes en acción
- Arquitectura de Kubernetes y componentes principales
- Pods, nodos y clústeres
- Deployments y ReplicaSets
- Servicios y descubrimiento de servicios
- ConfigMaps y Secrets
- Namespaces y organización de recursos
- Escalado de aplicaciones
- Actualizaciones progresivas y reversión
- Fundamentos de redes en Kubernetes
- Almacenamiento persistente
- Verificaciones de salud y resiliencia de aplicaciones
- Despliegue de aplicaciones Docker en Kubernetes
- Diagnóstico de problemas en cargas de trabajo de Kubernetes
Redes avanzadas en Docker
- Arquitectura de redes en Docker
- Controladores de red: bridge, host, overlay y otros
- Comunicación entre contenedores
- Comunicación entre contenedores y sistemas externos
- Redes personalizadas de Docker
- Aislamiento de red
- Descubrimiento de servicios
- Publicación y exposición de puertos
- Redes en entornos multi-host
- Diagnóstico de problemas de red en Docker
Seguridad en Docker
- Fundamentos de seguridad en Docker
- Aislamiento de contenedores y límites de seguridad
- Ejecución de contenedores con privilegios adecuados
- Gestión de usuarios y permisos dentro de los contenedores
- Capacidades de Linux (capabilities) y controles de seguridad
- Protección de imágenes de Docker
- Escaneo de vulnerabilidades en imágenes
- Gestión segura de secretos
- Seguridad de los registros de Docker
- Seguridad y aislamiento de red
- Seguridad del demonio de Docker
- Mejores prácticas de seguridad de contenedores
Configuración de un flujo de trabajo de integración continua para aplicaciones Docker
- Introducción a la integración continua (CI) para aplicaciones contenedorizadas
- Compilación automática de imágenes de Docker
- Pruebas automatizadas de imágenes y contenedores de Docker
- Etiquetado de imágenes y gestión de versiones
- Integración del control de versiones (source control) con compilaciones de Docker
- Escaneo automatizado de vulnerabilidades en imágenes
- Publicación de imágenes en registros
- Gestión de artefactos de compilación
- Implementación de controles de calidad automatizados
- Diseño de un pipeline de CI para Docker reproducible
Integración de aplicaciones Docker en un flujo de trabajo existente
- Integración de Docker con flujos de desarrollo existentes
- Contenedorización de aplicaciones existentes
- Integración de Docker con plataformas CI/CD
- Gestión de entornos de desarrollo, pruebas, staging y producción
- Estrategias de despliegue automatizado
- Gestión de configuración entre entornos
- Integración con registros
- Aprobaciones de despliegue y gestión de lanzamientos
- Monitoreo de despliegues de aplicaciones
- Mantenimiento de la consistencia entre entornos
Mejores prácticas de contenedores y orquestación
- Diseño de imágenes de Docker mantenibles
- Optimización del inicio y rendimiento de contenedores
- Gestión del ciclo de vida de los contenedores
- Asignación efectiva de recursos
- Estrategias de registros y monitoreo
- Gestión de configuración y secretos
- Alta disponibilidad y tolerancia a fallos
- Escalado de aplicaciones contenedorizadas
- Despliegue seguro de contenedores
- Estrategias de versionado y lanzamiento
- Mejores prácticas de arquitectura de orquestación
Diagnóstico de problemas (Troubleshooting)
- Diagnóstico de fallos en el inicio de contenedores
- Investigación de registros de aplicaciones y contenedores
- Inspección de contenedores e imágenes
- Resolución de problemas de red
- Resolución de problemas de almacenamiento y volúmenes
- Diagnóstico de fallos en la compilación de imágenes
- Diagnóstico de problemas en aplicaciones Docker Compose
- Investigación de problemas de recursos y rendimiento
- Fundamentos de diagnóstico en Kubernetes
- Ejercicios prácticos de diagnóstico
Resumen y conclusión
- Repaso de conceptos clave de Docker
- Repaso de creación de imágenes y gestión de contenedores
- Repaso del despliegue de aplicaciones multi-contenedor
- Repaso de conceptos de orquestación y Kubernetes
- Repaso de redes y seguridad en Docker
- Repaso de la integración CI/CD
- Mejores prácticas de contenedorización y orquestación
- Ejercicio práctico final
- Preguntas y debate
Requerimientos
- Experiencia previa trabajando con contenedores de Docker.
Público objetivo
- Desarrolladores
- Ingenieros DevOps
- Administradores de sistemas
Reseñas (7)
El amplio conocimiento del formador, su capacidad para resolver problemas que surgían espontáneamente durante las sesiones prácticas. Además, los ejercicios mismos son adecuados para ayudar a consolidar los temas contenidos en el curso.
Cosmin - Ness Digital Engineering
Curso - Advanced Docker
Traducción Automática
El ritmo y el hecho de que nos sumergimos en profundidad muy rápidamente, pero creo que podríamos haber ido aún más a fondo desde el primer día (considerando que es un entrenamiento avanzado de Docker, se supone que hay ciertos conocimientos básicos de Docker).
SORIN ROMAN - Ness Digital Engineering
Curso - Advanced Docker
Traducción Automática
el formador es una persona amable y explicó todo muy bien, de manera estructurada y coherente. ejercicios geniales para la práctica
Andreas - Ness Digital Engineering
Curso - Advanced Docker
Traducción Automática
La formación tuvo un buen ritmo, adaptado a la experiencia de cada participante. Además, tiene un equilibrio agradable entre nociones teóricas y ejercicios prácticos.
Laurentiu - Ness Digital Engineering
Curso - Advanced Docker
Traducción Automática
La estructura y la forma en que se presentó. Para mí, este entrenamiento fue como un viaje: desde las aplicaciones hasta los contenedores de Docker, hasta Kubernetes. Los ejercicios fueron atractivos y pertinentes.
Andrei - Ness Digital Engineering
Curso - Advanced Docker
Traducción Automática
tener a la mano la MV
Pamela Perez Aguirre - AT&T
Curso - Advanced Docker
Considero que fue el hecho de como se abordaron los temas, son muchos los conceptos pero me agrado que nos permitió comprender como es que docker funciona y de lo que consta.