Temario: Introducción a Docker y CI/CD (7 horas)
Curso completo de introducción a Docker y CI/CD, diseñado para proporcionar una base sólida en contenedores y prácticas de integración y despliegue continuo.
Bloque 1: Fundamentos de Docker (1 hora)
1
¿Qué es Docker?
Historia y evolución.
2
Diferencias entre máquinas virtuales y contenedores
3
Beneficios de usar Docker
4
Arquitectura de Docker
Docker Engine, Imágenes, Contenedores, Volúmenes, Redes
Práctica:
Instalar Docker y ejecutar el primer contenedor con hello-world y ubuntu.
Módulo 2: Imágenes y Contenedores (1 hora)
1
Comandos básicos de Docker
docker run, docker ps, docker stop, docker rm, docker images, docker rmi
2
Trabajando con imágenes de Docker Hub
docker pull, docker search
3
Creando un contenedor interactivo
docker run -it ubuntu bash
4
Persistencia de datos
Introducción a volúmenes (docker volume)
Práctica:
  • Descargar y ejecutar un contenedor de Alpine Linux y ejecutar comandos básicos.
  • Crear y gestionar contenedores con una aplicación simple en NGINX.
Módulo 3: Dockerfiles y Creación de Imágenes Personalizadas (1 hora)
¿Qué es un Dockerfile?
Instrucciones básicas
FROM, RUN, COPY, CMD, ENTRYPOINT
Creación de una imagen propia
A partir de un Dockerfile
Introducción a capas en imágenes y optimización
Práctica:
Crear una imagen personalizada con Python y ejecutar un script dentro de un contenedor.
Módulo 4: Redes, Volúmenes y Docker Compose (1 hora y 30 min)
Redes en Docker
  • Tipos de redes (bridge, host, none)
  • Comunicación entre contenedores
Volúmenes en Docker
  • Bind mounts vs Volúmenes
  • Persistencia de datos en contenedores
Introducción a Docker Compose
  • ¿Qué es y cuándo usarlo?
  • Definir servicios con docker-compose.yml
  • Levantar múltiples contenedores (docker-compose up)
Práctica:
  • Conectar dos contenedores en una misma red (ejemplo con NGINX y Alpine).
  • Crear un docker-compose.yml para levantar una aplicación simple con MySQL y PHPMyAdmin.
Módulo 5: Integración continua con Git (1 hora 30 min)

1

1
Conceptos de integración continua (CI)

2

2
Introducción a pipelines de CI/CD

3

3
Integración de Git con herramientas de CI
Jenkins, Travis CI, GitLab CI

4

4
Automatización de pruebas unitarias y de integración en CI/CD
Práctica:
  • Configurar un pipeline básico en GitHub Actions o GitLab CI.
  • Ejecutar pruebas automáticas en un contenedor de Docker dentro de un pipeline.