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.