Regresar

Introducción a Docker

NG

Neil Graneros

Publicado el 16 Sep 2025

📋 Descripción

En este apartado se encuentra el material relacionado al taller de Docker.

En esta clase, se abordaron los conceptos básicos y comandos útiles sobre la creación de imágenes y contenedores Docker.

📎 Adjunto : Se incluye la diapositiva usada en la sesión:

🧰 Recursos

📚 Taller de Docker: Introducción y primeros pasos

Docker es una plataforma que permite crear, distribuir y ejecutar aplicaciones en contenedores.
Un contenedor es como una “caja ligera” que incluye todo lo necesario para ejecutar un programa: código, dependencias, librerías y configuración.

Con Docker puedes:

  • Garantizar que tu aplicación se ejecute igual en cualquier entorno (local, servidor, nube).
  • Aislar servicios para evitar conflictos entre proyectos.
  • Automatizar despliegues y escalar aplicaciones fácilmente.

1. Fundamentos de Docker

Antes de usar Docker, debemos entender sus conceptos principales:

  • Imagen: plantilla inmutable que contiene una aplicación lista para ejecutarse (ejemplo: nginx, mysql).
  • Contenedor: una instancia en ejecución de una imagen.
  • Dockerfile: archivo con instrucciones para construir imágenes personalizadas.
  • Docker Hub: repositorio público donde se comparten imágenes de contenedores.

Un contenedor es a una imagen lo que un proceso es a un programa: uno es la definición, el otro la ejecución.


2. Instalación de Docker

Windows / Mac

Descargar e instalar Docker Desktop.

Linux (ejemplo: Ubuntu)

sudo apt update
sudo apt install docker.io -y
sudo systemctl enable --now docker

Verificar instalación:

docker --version

3. Primeros pasos con Docker

Hola Mundo

Ejecuta el contenedor de prueba:

docker run hello-world

Descargar una imagen

docker pull nginx

Listar imágenes disponibles

docker images

Crear un contenedor

docker run -d -p 8080:80 nginx
  • -d: modo “detached” (en segundo plano).
  • -p: mapea el puerto 80 del contenedor al 8080 de tu máquina.

Accede en el navegador: http://localhost:8080

Listar contenedores

docker ps

4. Gestión de contenedores

  • Detener un contenedor:
docker stop <id_contenedor>
  • Eliminar un contenedor:
docker rm <id_contenedor>
  • Eliminar una imagen:
docker rmi nginx

5. Crear una BD a partir de una Imagen

  • Crear instancia de una BD en Postres 16:
docker run --name pg16 -e POSTGRES_PASSWORD=postgres -d -p 5432:5432 postgres:16.0
  • Esto crea un contenedor de Postgres con la siguiente configuración:
    • Host : localhost
    • Puerto: 5432
    • Database: postgres
    • Username: postgres
    • Password: postgres

6. Construcción de imágenes con Dockerfile

Ejemplo de Dockerfile para una aplicación Node.js:

# Imagen base
FROM node:18

# Carpeta de trabajo
WORKDIR /app

# Copiar archivos
COPY package*.json ./
RUN npm install
COPY . .

# Puerto expuesto
EXPOSE 3000

# Comando de inicio
CMD ["npm", "start"]

Construir la imagen:

docker build -t mi-app .

Ejecutar la imagen:

docker run -d -p 3000:3000 mi-app

7. Docker Compose

Para manejar múltiples contenedores juntos usamos Docker Compose. Ejemplo: aplicación con Node.js y MongoDB.

docker-compose.yml:

version: "3.8"
services:
  app:
    build: .
    ports:
      - "3000:3000"
    depends_on:
      - db
  db:
    image: mongo
    ports:
      - "27017:27017"

Levantar todo:

docker-compose up -d

Detener todo:

docker-compose down

8. Casos de uso de Docker

  • Desarrollo local sin problemas de dependencias.
  • Pruebas automatizadas en CI/CD.
  • Despliegue en servidores y nube.
  • Microservicios que necesitan correr de forma aislada.

9. Ejercicio práctico del taller

  1. Instalar Docker en tu máquina.
  2. Levantar un contenedor de Nginx en el puerto 8080.
  3. Crear un contenedor de MySQL con usuario y contraseña configurados.
  4. Construir tu propia imagen de una app simple en Node.js o Python.
  5. Usar Docker Compose para ejecutar la app + base de datos juntas.

Docker es la base de muchas tecnologías modernas (Kubernetes, Swarm, OpenShift). Dominarlo es un paso fundamental en el camino hacia DevOps y despliegue en la nube.


👨‍💻 Autor - Facilitador


🔰 Grupos de estudio organizadores


🇧🇴 La Paz - Bolivia 2025