- Ventajas clave: portabilidad, escalabilidad, eficiencia y consistencia.
- Los componentes básicos: imágenes, contenedores, volúmenes, redes, Dockerfile, Compose y Swarm.
🔹 Instalación y primeros pasos
- Cómo instalar Docker en Linux, Windows y macOS.
- Diferencias entre Docker Engine y Docker Desktop.
- Pasos posteriores a la instalación (configuración, permisos, actualización y desinstalación).
🔹 Trabajo con contenedores
- Ejecutar tu primer contenedor.
- Comandos básicos: crear, detener, reiniciar y eliminar contenedores.
- Modos de ejecución: interactivo y en segundo plano.
- Mapeo de puertos, logs, ejecución de comandos y manejo de recursos (CPU, memoria).
- Ejemplo práctico: ejecutar Apache en un contenedor.
🔹 Imágenes y Dockerfiles
- Conceptos de imágenes, capas, tags e IDs.
- Cómo crear imágenes personalizadas usando Dockerfile.
- Buenas prácticas: minimizar capas, usar
.dockerignore
, multi-stage builds y seguridad. - Cómo versionar, optimizar, escanear y subir imágenes a Docker Hub.
🔹 Redes y almacenamiento
- Redes en Docker: bridge, host, overlay, macvlan, none y plugins.
- Cómo conectar contenedores entre sí y con el exterior.
- Volúmenes: persistencia de datos, tipos (named, bind mounts, tmpfs), backups y buenas prácticas.
🔹 Docker Compose
- Uso de archivos
docker-compose.yml
para definir aplicaciones multi-contenedor. - Comandos esenciales (
up
,down
,logs
,ps
). - Casos prácticos:
- WordPress + MySQL.
- Flask + Redis + Nginx.
- Escalabilidad de servicios, redes y volúmenes en Compose.
🔹 Seguridad
- Mantener Docker actualizado.
- Usar imágenes oficiales y escanear vulnerabilidades.
- Ejecutar contenedores con usuarios no root.
- Manejo de secretos, auditorías, AppArmor/SELinux, segmentación de redes, logging y monitoring seguro.
🔹 Docker en producción (Kubernetes & Swarm)
- Conceptos de Kubernetes: pods, servicios, deployments, namespaces.
- Crear un cluster (Minikube o servicios administrados como GKE, EKS, AKS).
- Escalado, rolling updates, monitoreo (Prometheus, Grafana), almacenamiento persistente y secretos.
- Orquestación nativa con Docker Swarm: servicios, clusters, managers y workers.
🔹 Optimización y troubleshooting
- Optimización de imágenes (alpine, multi-stage).
- Rendimiento en red, almacenamiento, logging y daemon.
- Técnicas de benchmarking, profiling y monitoreo.
- Solución de problemas comunes:
- Contenedores que no inician.
- Fallos de red o volúmenes.
- Uso excesivo de recursos.
- Problemas con imágenes y daemon.
🔹 Conceptos avanzados
- Docker BuildKit y Buildx.
- Plugins y características experimentales.
- Content Trust y secretos.
- Health checks personalizados.
- Manifiestos multi-arquitectura.
- Docker Compose Profiles.
🔹 Ciclos de integración y despliegue (CI/CD)
- Uso de Docker en CI (tests automáticos, entornos reproducibles).
- Integración con GitLab, GitHub Actions, Jenkins, Travis.
- Despliegue con Swarm o Kubernetes.
- Estrategias de blue-green deployments.
- Seguridad, pruebas de rendimiento, logging y caching de capas.
🔹 Microservicios
- Principios de arquitectura de microservicios.
- Dockerización de microservicios y comunicación vía REST, colas (RabbitMQ), etc.
- Descubrimiento de servicios (Consul) y uso de API Gateways (Nginx).
- Bases de datos por servicio, monitoreo y escalado.
- Estrategias de pruebas y despliegue.
🔹 Data Science & Machine Learning
- Configuración de entornos reproducibles (Jupyter, Conda).
- Uso de GPUs con Docker para entrenar modelos.
- Entrenamiento distribuido con Docker Swarm.
- MLOps: despliegue de modelos, pipelines con Airflow, reproducibilidad.
- Procesamiento de Big Data con Spark en contenedores.
- AutoML y tuning de hiperparámetros a escala.
✅ En resumen, aprenderás desde cero hasta nivel avanzado: instalación, manejo de contenedores, redes, almacenamiento, seguridad, CI/CD, microservicios, machine learning y orquestación con Kubernetes y Swarm.
Con este libro saldrás con la capacidad de implementar proyectos Docker en desarrollo, pruebas y producción.