Nota: Para exportar este documento como PDF, utiliza la función de impresión de tu navegador y selecciona "Guardar como PDF".
🎯 ¿Por qué aprender Docker?
Docker es como una "máquina de empaquetar aplicaciones". Te permite poner tu aplicación en una "caja" (contenedor) con todo lo que necesita para funcionar, para que puedas moverla fácilmente a cualquier lugar.
📦 MÓDULO 1: Introducción a Docker y Play with Docker
🎞 Presentación
¿Qué es Docker? Una plataforma para desarrollar, enviar y ejecutar aplicaciones en contenedores.
¿Qué es un contenedor? Es como una caja virtual que contiene tu aplicación y todas sus partes (código, bibliotecas, configuraciones). ¡Funciona igual en cualquier computadora!
Arquitectura básica: Daemon (motor), API REST, CLI (interfaz de línea de comandos).
🖥️ Play with Docker (PWD)
Es un "patio de juegos" online donde puedes practicar Docker sin instalar nada.
📘 Guía Paso a Paso
Crear instancia (haz clic en "+ ADD NEW INSTANCE")
Ejecutar comandos básicos:
ls # Ver qué hay en la carpeta actual
pwd # Ver en qué carpeta estás
mkdir prueba # Crear carpeta llamada "prueba"
touch archivo.txt # Crear archivo vacío
🧪 Actividades
Práctica guiada: Crear instancia y ejecutar comandos básicos.
Desafío libre: Crear carpeta "docker_test" y archivo "info.txt" con tu nombre dentro.
❓ Preguntas para reflexionar
- ¿Qué es un contenedor?
- ¿Qué hace el Daemon de Docker?
- ¿Qué ventajas tiene usar Play with Docker?
🧱 MÓDULO 2: Fundamentos de Docker: Imágenes y Contenedores
🎞 Presentación
¿Qué es una imagen? Es como una "plantilla" o "molde" que usamos para crear contenedores.
Docker Hub: Es como una "tienda de aplicaciones" donde encontramos imágenes listas para usar.
Ciclo de vida: Cómo crear, iniciar, detener y eliminar contenedores.
📘 Guía Paso a Paso
Buscar imagen: docker/getting-started:pwd
Ejecutar contenedor:
docker run -dp 80:80 docker/getting-started:pwd
Explicación:
- -d: ejecutar en segundo plano
- -p 80:80: conectar puerto 80 del contenedor con puerto 80 de tu máquina
Acceder por el "port badge" (botón que aparece arriba)
Verificar con: docker container ls
Detener contenedor: docker stop [ID_DEL_CONTENEDOR]
Eliminar contenedor: docker rm [ID_DEL_CONTENEDOR]
🧪 Actividades
Práctica guiada: Ejecutar y detener contenedor de tutorial.
Desafío libre: Buscar otra imagen en Docker Hub y ejecutarla.
❓ Preguntas para reflexionar
- ¿Qué es una imagen de Docker?
- ¿Qué hace el comando "docker run"?
- ¿Cómo se accede a una aplicación dentro de un contenedor?
🛠 MÓDULO 3: Creando Imágenes con Dockerfiles
🎞 Presentación
¿Qué es un Dockerfile? Es como una "receta" que le dice a Docker cómo construir nuestra imagen.
Estructura: Etapas, capas, instrucciones.
Directivas clave: FROM, MAINTAINER, COPY, EXPOSE, CMD.
📘 Guía Paso a Paso
Crear archivo Dockerfile (sin extensión)
Crear index.html con contenido simple
Escribir en Dockerfile:
# Usar una imagen base de Nginx
FROM nginx:alpine
# Quién mantiene esta imagen
MAINTAINER Tu Nombre
# Copiar nuestro archivo HTML
COPY index.html /usr/share/nginx/html/index.html
# Exponer el puerto 80
EXPOSE 80
# Comando para ejecutar cuando inicie el contenedor
CMD ["nginx", "-g", "daemon off;"]
Construir imagen: docker build -t mi-imagen .
Ejecutar contenedor: docker run -dp 80:80 mi-imagen
Acceder desde navegador
🧪 Actividades
Práctica guiada: Crear imagen personalizada con Nginx.
Desafío libre: Modificar el HTML y reconstruir la imagen.
❓ Preguntas para reflexionar
- ¿Qué hace la instrucción FROM?
- ¿Para qué sirve CMD?
- ¿Cómo se construye una imagen a partir de un Dockerfile?
📂 MÓDULO 4: Gestión de Datos y Redes
🎞 Presentación
¿Por qué persistir datos? Para que la información no se pierda al eliminar el contenedor.
¿Qué son los volúmenes? Son como "discos externos" para tus contenedores.
Tipos: Bind Mounts vs Volúmenes.
¿Qué son las redes en Docker? Permiten que los contenedores se comuniquen entre sí.
Drivers: bridge (predeterminado) vs host.
📘 Guía Paso a Paso
Crear volumen: docker volume create datos
Ejecutar contenedor con volumen:
docker run -dp 80:80 -v datos:/datos mi-imagen
Crear red: docker network create mi-red
Ejecutar dos contenedores en la misma red:
docker run -d --name contenedor1 --network mi-red nginx:alpine
docker run -d --name contenedor2 --network mi-red nginx:alpine
Verificar comunicación:
docker exec contenedor1 ping contenedor2
🧪 Actividades
Práctica guiada: Crear volumen y conectar contenedores con red.
Desafío libre: Simular microservicio con dos contenedores que se comuniquen.
❓ Preguntas para reflexionar
- ¿Qué es un volumen en Docker?
- ¿Qué hace el driver "bridge"?
- ¿Cómo se conectan contenedores entre sí?
🚀 MÓDULO 5: Más allá de lo Básico y Próximos Pasos
🎞 Presentación
Múltiples instancias en PWD: Crear varias "