Descripción
Este curso está diseñado para desarrolladores, administradores de sistemas y cualquier profesional de TI que quiera aprender a utilizar Docker desde los fundamentos hasta su aplicación en entornos reales. A lo largo del curso, los participantes comprenderán qué son los contenedores y por qué representan un cambio de paradigma en el desarrollo y despliegue de software. Se abordarán conceptos como imágenes, contenedores, redes, volúmenes, Docker Compose y buenas prácticas para construir aplicaciones portables y escalables. Al finalizar, el alumno será capaz de contenerizar aplicaciones propias, orquestar múltiples servicios y preparar entornos de desarrollo, prueba y producción consistentes y ligeros.
Duración sugerida: 8 horas (distribuidas en 9 módulos)
Requisitos previos: Conocimientos básicos de línea de comandos (Linux/Windows/macOS) y nociones elementales de desarrollo web o sistemas.
Lista de tópicos a tratar
Módulo 1: Fundamentos de contenedores y Docker
-
¿Qué son los contenedores? vs. máquinas virtuales
-
Historia y ventajas de Docker
-
Instalación de Docker en distintos sistemas operativos (Linux, Windows WSL2, macOS)
-
Arquitectura de Docker: cliente, daemon, registries
-
Primeros comandos:
docker run,docker ps,docker stop,docker rm
Módulo 2: Imágenes y Dockerfiles
-
Imágenes Docker: capas, tag y versionado
-
Registros públicos y privados: Docker Hub
-
Creación de imágenes personalizadas con
Dockerfile-
Instrucciones básicas:
FROM,RUN,COPY,WORKDIR,CMD,ENTRYPOINT -
Buenas prácticas: capas, orden de instrucciones, caché
-
-
Construcción y etiquetado:
docker build,docker tag -
Publicación de imágenes en un registro
Módulo 3: Gestión de contenedores
-
Ciclo de vida de un contenedor: create, start, stop, restart, pause
-
Inspección de contenedores: logs, procesos, estadísticas (
docker logs,docker stats,docker inspect) -
Ejecución interactiva y en segundo plano (
-it,-d) -
Variables de entorno en contenedores (
-e,--env-file) -
Comunicación entre contenedores básica (vínculos heredados, red por defecto)
Módulo 4: Persistencia de datos y volúmenes
-
El sistema de archivos efímero de los contenedores
-
Tipos de montajes: bind mounts, volúmenes nombrados, tmpfs
-
Creación y gestión de volúmenes:
docker volume create,docker volume ls -
Uso de volúmenes en
docker run(-v,--mount) -
Copia de datos entre host y contenedor (
docker cp)
Módulo 5: Redes en Docker
-
Modelo de red: tipos de drivers (bridge, host, none, overlay, macvlan)
-
Red bridge por defecto y redes personalizadas
-
Creación y conexión de contenedores a redes (
docker network create,connect,disconnect) -
Resolución de nombres DNS entre contenedores
-
Exposición y mapeo de puertos (
-p,-P)
Módulo 6: Docker Compose
-
Problema de múltiples contenedores y necesidad de orquestación sencilla
-
Instalación de Docker Compose (V2)
-
Estructura de un archivo
docker-compose.yml -
Servicios, redes y volúmenes en Compose
-
Variables de entorno y archivos
.env -
Comandos principales:
up,down,logs,exec,build -
Ejemplo práctico: LAMP/LEMP stack o aplicación con frontend, backend y base de datos
Módulo 7: Buenas prácticas y optimización
-
Imágenes ligeras: uso de Alpine Linux, multi-stage builds
-
Seguridad básica: no ejecutar como root, escaneo de vulnerabilidades (
docker scan) -
Manejo de secretos (variables sensibles)
-
Limpieza de recursos no utilizados (
docker system prune) -
Logging y drivers de registro
Módulo 8: Introducción a orquestación (opcional / avanzado)
-
Limitaciones de Docker Compose en producción
-
Concepto de clúster y orquestadores (Kubernetes, Docker Swarm)
-
Iniciación a Docker Swarm: servicios, stacks, despliegues replicados
-
Visión general de Kubernetes y relación con Docker
Proyecto final (integrador)
-
Contenerizar una aplicación propia (ej. API REST + base de datos + frontend estático)
-
Escribir Dockerfiles y archivo docker-compose.yml
-
Configurar redes y volúmenes adecuados
-
Desplegar localmente y verificar persistencia, logs y escalabilidad básica
-
Opcional: publicar imágenes en Docker Hub




Valoraciones
No hay valoraciones aún.