Skip to content

Docker Esencial: Contenedores desde Cero

  • Duración: 4 tardes (16 horas lectivas).
  • Modalidad: Online en directo / Presencial.
  • Público objetivo: Estudiantes y desarrolladores juniors que sufren el "en mi máquina sí funciona" y necesitan empaquetar sus aplicaciones y bases de datos en entornos aislados y reproducibles.

El Problema

Instalar una base de datos directamente en tu sistema operativo, pelearte con versiones incompatibles de Java/Node/Python o enviar un proyecto que no le arranca a un compañero porque le falta una dependencia es perder el tiempo.

Las empresas exigen que cualquier software se ejecute en contenedores:

  • No más "se me ha desconfigurado la base de datos local".
  • Levantar todo el entorno de un proyecto con una sola línea de comando.
  • Asegurar que lo que funciona en tu portátil funcionará exactamente igual en cualquier servidor.

Esta píldora te enseña a containerizar tus proyectos sin complicaciones.


Temario Detallado (Tarde por Tarde)

Lunes: Fundamentos de la Containerización

  • ¿Por qué Docker?: Máquinas virtuales vs. Contenedores (aislamiento, recursos y velocidad).
  • Arquitectura de Docker: Daemon, Cliente CLI, Imágenes y Contenedores.
  • Primeros pasos con la CLI: Descargar y ejecutar contenedores oficiales (docker run, docker ps, docker stop, docker rm).
  • Inspección y logs: Ver qué pasa dentro de un contenedor en ejecución (docker logs, docker exec -it).
  • Ejercicio práctico: Levantar servidores web (Nginx/Apache) y bases de datos desde Docker Hub sin instalar nada en el sistema base.

Martes: Creación de Imágenes con Dockerfile

  • Anatomía de un Dockerfile: Instrucciones clave (FROM, WORKDIR, COPY, RUN, ENV, EXPOSE, CMD).
  • Ciclo de vida: Construir imágenes personalizadas (docker build) y etiquetarlas (docker tag).
  • Estrategias de optimización: Orden de las capas, uso de .dockerignore y elección de imágenes base ligeras (Alpine/Slim).
  • Ejercicio práctico: Escribir un Dockerfile desde cero para empaquetar una aplicación web (Java, Node o Python) y ejecutarla dentro de un contenedor.

Miércoles: Persistencia de Datos y Volúmenes

  • El ciclo de vida efímero: Por qué los datos dentro de un contenedor se pierden al destruirlo.
  • Volúmenes gestionados por Docker: Creación, inspección y uso de docker volume.
  • Bind Mounts: Mapear carpetas de tu máquina local al contenedor para desarrollo en tiempo real.
  • Gestión de permisos y persistencia: Proteger los datos de tus bases de datos (PostgreSQL, MySQL o MongoDB).
  • Ejercicio práctico: Montar una base de datos containerizada con volumen persistente, destruir el contenedor y comprobar que los datos no se han perdido.

Jueves: Redes y Orquestación Local con Docker Compose

  • Redes en Docker: Aislamiento, driver bridge y resolución de nombres por DNS interno de Docker.
  • Introducción a Docker Compose: Sintaxis del archivo docker-compose.yml.
  • Servicios, Redes y Volúmenes: Declarar múltiples contenedores interconectados de forma limpia.
  • Variables de entorno y secretos: Uso de archivos .env para no exponer credenciales en el código.
  • Ejercicio práctico: Diseñar un entorno multicapa funcional (Aplicación Backend + Base de Datos PostgreSQL + Adminer/pgAdmin).

Viernes: Publicación y Buenas Prácticas

  • Registros de imágenes: Cuenta en Docker Hub, autenticación y publicación de imágenes propias (docker push).
  • Limpieza de recursos: Mantenimiento del entorno local sin llenar el disco (docker system prune, eliminación de imágenes huérfanas).
  • Buenas prácticas de seguridad: Ejecutar procesos sin usuario root y gestión de puertos expuestos.
  • Ejercicio práctico: Publicar la imagen de tu aplicación en Docker Hub y desplegarla mediante Docker Compose en la máquina de un compañero con un solo comando (docker compose up).

Lo que te llevas

  1. La capacidad de aislar cualquier base de datos o servicio en segundos sin ensuciar tu sistema operativo.
  2. Sabiduría práctica para crear Dockerfiles optimizados para tus propios proyectos.
  3. Dominio de Docker Compose para arrancar entornos completos de desarrollo con un solo comando.

Consultar fechas y reservar plaza

Píldoras formativas de desarrollo software.