Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Guía para Desarrolladores Principiantes en Docker
Rating: 4.4 out of 5(29 ratings)
1,791 students

Guía para Desarrolladores Principiantes en Docker

Aprende a usar Docker PARA como Desarrollador Web, Desde las bases hasta crear imágenes de tus proyectos Django Flask y+
Created byAndrés Cruz
Last updated 1/2026
Spanish
Spanish [Auto],

What you'll learn

  • Contenerización de Aplicaciones: Serán capaces de crear imágenes Docker eficientes para sus aplicaciones web (Python, Node.js, etc.) y bases de datos.
  • Configuración de Entornos de Desarrollo: Los estudiantes podrán crear, configurar y ejecutar entornos de desarrollo idénticos al de producción usando Docker.
  • Implementación de Aplicaciones: Podrán desplegar sus aplicaciones contenerizadas en un servidor de forma sencilla y reproducible,
  • Entender conceptos básicos de Docker

Course content

2 sections20 lectures1h 47m total length
  • Introducción3:05
  • Conceptos Claves en Docker: Similitudes de Imágenes y contenedores con PHP, Node5:36

    Damos unas comparaciones para entre los conceptos claves de Docker como lo es los contenedores e imágenes con tecnologías que empleamos siempre como lo son PHP, Node y Python.

  • Conceptos Claves en Docker: Imágenes, Contenedores, Cliente y Demonio7:58

    Introducimos LOS CONCEPTOS CLAVES de Imágenes, Contenedores, Cliente y Demonio y por supuesto, el de Docker.

  • Instalar Docker: UI y CLI1:13

    Hablamos sobre como instalar Docker, y que es lo que instalamos realmente...

  • El comando con el cual podrás entender el funcionamiento - docker run -d -p 80806:25

    Ejecutamos el siguiente comando:

    docker run -d -p 8080:80 nginx

    Con el cual se descarga la imagen de nginix, se crea el contenedor y se expone en el puerto 8080.

  • docker images - Listado de las imágenes1:43

    Ejecutamos el siguiente comando:

    docker images

  • docker run - Ejecutar una imagen y generar un contenedor8:27

    Ejecutamos el siguiente comando:

    docker run

    Con el cual ejecuta una imagen y crea un contenedor, hablemos sobre aspectos de configuración mediante parámetros y ejemplos de uso.

  • docker ps - Ver Todos los Contenedores Creados4:32

    Ejecutamos el siguiente comando:

    docker ps -a

    Con el cual veremos TODOS los contenedores y:

    docker ps

    Muestra TODOS los contenedores ejecutandose .

  • docker stop - Detener Contenedores en Ejecución2:13

    Ejecutamos el siguiente comando:

    docker stop ID/NAME

    Detenemos los contenedores que se encuentren ejecutándose.

  • docker rm - Eliminar Contenedores NO Ejecutandose1:02

    Ejecutamos el siguiente comando:

    docker rm ID/NAME

    Para eliminar un contenedor

  • docker logs - Ver Traza de un Contenedor3:20

    Ejecutamos el siguiente comando:

    docker logs ID/NAME

    Veremos el log o la traza de un contenedor

  • docker rmi - Elimina Una Imagen1:25

    Ejecutamos el siguiente comando:

    docker rmi ID/NAME

    Eliminamos una imagen

  • docker run/exec -it bash - Activar la Consola Interactiva sobre el Contenedor5:40

    Ejecutamos el siguiente comando:


    docker exec -it  bash   - Entrar dentro de un contenedor ACTIVO en modo interactivo (habilita el bash para lanzar comandos)

    docker run -it Container ID (Ej ubuntu)  Crea el contenedor y lo deja en modo interactivo (habilita el bash para lanzar comandos)

  • docker stats - Monitorea tus contenedores en tiempo real - 132:07

    Vemos cómo ver el consumo de CPU y memoria en Docker (con docker stats)

Requirements

  • Conocimiento Básico de Desarrollo Web: Familiaridad con los conceptos básicos de programación y desarrollo de aplicaciones web (saber qué es una API, base de datos, etc.).
  • Manejo de la Terminal/Línea de Comandos: Comodidad al trabajar con la línea de comandos (crear directorios, ejecutar comandos básicos).
  • Opcional (para principiantes): No se requiere experiencia previa con Docker o virtualización. Aprenderás desde cero a aplicar Docker a tus proyectos de desarrollo.

Description

Este curso ofrece una guía completa para iniciarse en el mundo de Docker, abarcando desde los conceptos más elementales hasta la orquestación de aplicaciones complejas con Docker Compose, con un enfoque práctico para desarrolladores.

1. Introducción a Docker y sus Conceptos Fundamentales

Antes de sumergirse en los comandos, es crucial entender la filosofía detrás de Docker y sus componentes principales.

¿Qué es Docker y por qué usarlo?

Docker es una plataforma que permite empaquetar aplicaciones junto con todas sus dependencias (librerías, configuraciones, etc.) en unidades estandarizadas llamadas contenedores. El objetivo principal es garantizar que una aplicación se ejecute de manera consistente en cualquier entorno, ya sea la máquina de un desarrollador, un servidor de pruebas o la nube.

La necesidad de Docker se comprende mejor con analogías. Al igual que los ambientes virtuales en Python (venv, pipenv) aíslan las dependencias de un proyecto para evitar conflictos entre versiones (por ejemplo, tener un proyecto con Django 4 y otro con Django 7 en la misma máquina), Docker encapsula toda la aplicación y su entorno, previniendo problemas de compatibilidad con el sistema operativo anfitrión y otros proyectos.

Imágenes (Images): Las Plantillas de tus Aplicaciones

Una imagen de Docker es una plantilla inmutable y de solo lectura que contiene todo lo necesario para ejecutar una aplicación: el sistema de archivos, el código, las librerías y las variables de entorno. Se puede pensar en una imagen como un archivo .exe o una clase en programación orientada a objetos: es un paquete estático que no hace nada por sí solo hasta que se ejecuta. Ejemplos de imágenes populares son python, ubuntu, nginx y postgres.

Contenedores (Containers): Las Instancias en Ejecución

Un contenedor es una instancia en ejecución de una imagen. Si la imagen es el plano, el contenedor es la casa construida a partir de ese plano. Al lanzar un contenedor, este se ejecuta como un proceso aislado con su propio sistema de archivos, red y entorno, pero compartiendo el kernel del sistema operativo anfitrión, lo que lo hace mucho más ligero que una máquina virtual completa. Los contenedores son portátiles, autocontenidos y pueden ser creados, iniciados, detenidos y eliminados de forma independiente.

2. Arquitectura y Comandos Esenciales de Docker

Para interactuar con Docker, se utilizan principalmente dos componentes que trabajan en conjunto.

El Cliente (docker) y el Demonio (dockerd)

  • Docker Client (docker): Es la herramienta de línea de comandos (CLI) con la que el usuario interactúa. Cuando escribes un comando como docker run, estás usando el cliente.

  • Docker Daemon (dockerd): Es el motor de Docker, un proceso que se ejecuta en segundo plano y se encarga de gestionar las imágenes, contenedores, redes y volúmenes. El cliente envía las instrucciones al demonio, y este las ejecuta.

Comandos Imprescindibles para la Gestión

  • docker images: Lista todas las imágenes descargadas en tu sistema.

  • docker ps: Muestra los contenedores que están actualmente en ejecución.

  • docker ps -a: Muestra todos los contenedores, tanto activos como detenidos.

  • docker run <imagen>: Crea y arranca un nuevo contenedor a partir de una imagen.

  • docker stop <id/nombre>: Detiene un contenedor en ejecución.

  • docker rm <id/nombre>: Elimina un contenedor detenido.

  • docker rmi <id/nombre>: Elimina una imagen.

  • docker logs <id/nombre>: Muestra los registros (logs) de un contenedor, útil para depurar.

  • docker exec -it <id/nombre> bash: Permite acceder a una terminal interactiva dentro de un contenedor que ya está en ejecución.

3. Creación de Imágenes Personalizadas con Dockerfile

El verdadero poder de Docker para los desarrolladores reside en la capacidad de crear imágenes propias para sus proyectos.

El Archivo Dockerfile

Un Dockerfile es un archivo de texto sin extensión que contiene un conjunto de instrucciones secuenciales para construir una imagen personalizada. Su estructura típica incluye:

  1. FROM: Define la imagen base sobre la cual se construirá la nueva imagen (ej. FROM python:3.12-slim).

  2. WORKDIR: Establece el directorio de trabajo dentro del contenedor (ej. WORKDIR /app).

  3. COPY: Copia archivos desde el sistema anfitrión al contenedor (ej. COPY requirements.txt .).

  4. RUN: Ejecuta comandos durante el proceso de construcción, como la instalación de dependencias (ej. RUN pip install -r requirements.txt).

  5. EXPOSE: Informa a Docker sobre los puertos que el contenedor expondrá (ej. EXPOSE 5050).

  6. CMD: Especifica el comando por defecto que se ejecutará al iniciar el contenedor (ej. CMD ["python", "app py"]).

Una vez definido el Dockerfile, la imagen se construye con el comando docker build -t mi-app ..

4. Orquestación de Múltiples Contenedores con Docker Compose

Para aplicaciones que requieren múltiples servicios (como una aplicación web, una base de datos y un servidor de caché), Docker Compose simplifica la gestión.

¿Qué es Docker Compose?

Es una herramienta que permite definir y ejecutar aplicaciones multi-contenedor a través de un único archivo de configuración llamado docker-compose.yml. En este archivo se definen los "servicios" que componen la aplicación, donde cada servicio es un contenedor.

El Archivo docker-compose.yml

Este archivo YAML define los servicios, redes y volúmenes. Por ejemplo, se puede definir un servicio web para una aplicación Flask y un servicio redis para la caché. Compose se encarga de crear y conectar los contenedores de forma automática. Los comandos principales son docker compose up para levantar la aplicación y docker compose down para detenerla.

5. Optimización del Flujo de Desarrollo

Para que Docker sea una herramienta de desarrollo eficiente, es fundamental que los cambios en el código se reflejen en tiempo real sin necesidad de reconstruir la imagen constantemente.

Volúmenes para la Persistencia de Datos

Los volúmenes permiten persistir datos fuera del ciclo de vida de un contenedor. Funcionan como un disco duro externo, montando un directorio del sistema anfitrión dentro del contenedor. Esto es clave para el desarrollo, ya que el código fuente puede vivir en la máquina local y ser "sincronizado" con el contenedor.

Docker Compose Watch: Sincronización en Tiempo Real

Docker Compose incluye una funcionalidad de watch que monitorea los cambios en los archivos locales y los sincroniza automáticamente con el contenedor. Esto se configura en el archivo docker-compose.yml dentro de una sección develop. Al ejecutar docker compose up --watch, los cambios en el código se reflejan instantáneamente en la aplicación que se ejecuta dentro del contenedor, creando un flujo de trabajo de desarrollo ágil y eficiente.

Who this course is for:

  • Desarrolladores Web (Frontend y Backend): Desarrolladores de cualquier lenguaje (Python, JavaScript/Node.js, Ruby, PHP, Java, etc.) que quieran simplificar la configuración de sus entornos y hacer sus despliegues más consistentes.
  • Estudiantes o Ingenieros de Software: Personas con experiencia limitada en producción que buscan profundizar en herramientas de estandarización de entornos para mejorar su flujo de trabajo profesional.