Cronograma para Aprender Docker en 15 Días
Día 1: Introducción a Docker
Temas: ¿Qué es Docker? Contenedores vs. máquinas virtuales, conceptos clave (imágenes, contenedores, Dockerfile, Docker Hub).
Actividades:
- Lee la documentación oficial de Docker: "Get Started".
- Mira un video introductorio (~30 min).
- Instala Docker Desktop en tu sistema.
Tarea práctica: Verifica la instalación con docker --version
y docker run hello-world
.
Día 2: Primeros pasos con contenedores
Temas: Comandos básicos (docker pull
, docker run
, docker ps
, etc.), gestión de contenedores.
Actividades:
- Sigue un tutorial interactivo en Play with Docker.
- Crea y ejecuta un contenedor con
docker run -it ubuntu bash
.
Tarea práctica: Corre un contenedor de Nginx (docker run -d -p 8080:80 nginx
) y accede desde localhost:8080
.
Día 3: Imágenes y Dockerfile
Temas: Crear imágenes personalizadas, estructura de un Dockerfile, capas de imágenes.
Actividades:
- Lee sobre Dockerfile en la documentación oficial.
- Crea un Dockerfile simple para una app (ej. Node.js o Python).
Tarea práctica: Construye una imagen con docker build -t mi-imagen .
y ejecuta un contenedor.
Día 4: Gestión de datos con volúmenes
Temas: Volúmenes y bind mounts, persistencia de datos.
Actividades:
- Aprende sobre
docker volume create
y--mount
. - Configura un contenedor con un volumen (ej. MySQL).
Tarea práctica: Crea un contenedor de PostgreSQL con un volumen y verifica la persistencia de datos.
Día 5: Redes en Docker
Temas: Redes bridge, host y overlay, comunicación entre contenedores.
Actividades:
- Lee sobre redes en Docker.
- Crea dos contenedores que se comuniquen (ej. app web y base de datos).
Tarea práctica: Configura una red personalizada con docker network create
y conecta dos contenedores.
Día 6: Docker Compose
Temas: Introducción a Docker Compose, archivos docker-compose.yml
.
Actividades:
- Instala Docker Compose y estudia su sintaxis.
- Crea un archivo
docker-compose.yml
para una app simple.
Tarea práctica: Lanza una aplicación multi-contenedor con docker-compose up
.
Día 7: Buenas prácticas y optimización
Temas: Optimización de Dockerfiles, limpieza de recursos.
Actividades:
- Aprende a usar imágenes base como
alpine
. - Practica comandos como
docker system prune
.
Tarea práctica: Optimiza un Dockerfile y mide el tamaño de la imagen.
Día 8: Proyecto intermedio
Tarea práctica: Despliega una aplicación Full Stack (ej. Node.js + MongoDB) usando Docker Compose. Publica el código en GitHub.
Día 9: Docker en desarrollo
Temas: Entornos de desarrollo con Docker, hot-reloading.
Actividades:
- Configura una app con hot-reloading (ej. React o Flask).
Tarea práctica: Crea un entorno de desarrollo con volúmenes para sincronizar cambios en tiempo real.
Día 10: Seguridad en Docker
Temas: Mejores prácticas de seguridad (imágenes oficiales, usuarios no root, escaneo).
Actividades:
- Lee sobre seguridad en Docker.
- Usa
docker scan
para analizar una imagen.
Tarea práctica: Modifica un Dockerfile para usar un usuario no root.
Día 11: Docker en producción
Temas: Despliegue en producción, integración con CI/CD.
Actividades:
- Estudia cómo integrar Docker con GitHub Actions o Jenkins.
- Despliega una app en AWS ECS o Heroku.
Tarea práctica: Configura un pipeline básico de CI/CD.
Día 12: Introducción a orquestación
Temas: Kubernetes básico, Docker Swarm.
Actividades:
- Lee sobre Docker Swarm y crea un clúster simple.
- Explora Minikube para Kubernetes.
Tarea práctica: Despliega una app simple en Docker Swarm.
Día 13: Proyecto final - Parte 1
Tarea práctica: Diseña una aplicación Full Stack (ej. API REST con frontend y base de datos) con Docker Compose, usando volúmenes, redes y buenas prácticas.
Día 14: Proyecto final - Parte 2
Tarea práctica: Despliega tu proyecto en un servicio en la nube (AWS, Google Cloud o DigitalOcean). Documenta el proceso en tu portafolio.
Día 15: Repaso y preparación profesional
Actividades:
- Revisa conceptos clave y comandos.
- Practica explicar Docker en una entrevista técnica.
- Agrega tu proyecto a tu CV y portafolio.
Tarea práctica: Publica tu proyecto en GitHub con un README claro y comparte un enlace en LinkedIn o X.
Recursos recomendados
- Documentación oficial: docs.docker.com
- Cursos: “Docker for Beginners” en freeCodeCamp, “Docker Mastery” en Udemy.
- Comunidades: Reddit (r/docker), Discord, hashtags #Docker o #DevOps en X.