Docker está en todas partes: en backend, en despliegues, en data science, en AI… pero la primera vez que te lo presentan suele sonar a magia negra. Tranquilo: aquí te lo explico con claridad, ejemplos y un hilo narrativo que engancha.

¿Qué es Docker y por qué todos hablan de él?
Imagina que puedes empaquetar tu aplicación junto a todo lo que necesita para funcionar —dependencias, librerías, entorno— y llevártela a cualquier máquina sin preocuparte de “en mi PC funciona, en producción no”.
Eso es Docker.
Un sistema que crea contenedores, pequeños mundos autosuficientes donde tu app vive sin molestar a nadie y sin que nada la moleste a ella.
Conceptos clave (sin tecnicismos agobiantes)
Imagen
Una receta. Contiene el sistema operativo base (ligero), dependencias y tu app.
Contenedor
Una instancia viva de una imagen. Como ejecutar un programa instalado.
Dockerfile
El archivo donde dices:
“Quiero esta base, instala esto, copia mi código y arráncalo así”.
Docker Hub
El “GitHub” de las imágenes Docker. Descargas y subes imágenes.
1. Instalación de Docker
En Linux (Ubuntu)
sudo apt update sudo apt install docker.io sudo systemctl enable docker sudo systemctl start docker
En Windows / Mac
Descarga Docker Desktop desde la web oficial.
Tu primer contenedor: Hello World
docker run hello-world
Docker descargará la imagen, la ejecutará y te mostrará un mensaje de bienvenida.
Magia. Ya has corrido tu primer contenedor.
Levantemos algo útil: un servidor Nginx
Ejecuta:
docker run -d -p 8080:80 nginx
-d → en segundo plano
-p 8080:80 → abrir el puerto 8080 y conectarlo al 80 del contenedor
Ahora visita:
http://localhost:8080
Verás la bienvenida de Nginx. Ya tienes un servidor web funcionando sin instalar nada en tu PC.
Tu primer Dockerfile (Nivel: principiante ninja)
Vamos a contenerizar una pequeña app Node.js.
Estructura:
/demo ├─ Dockerfile ├─ package.json └─ index.js
index.js
console.log("¡Hola desde Docker!");
Dockerfile
FROM node:18-alpine WORKDIR /app COPY . . RUN npm install CMD ["node", "index.js"]
Construye la imagen:
docker build -t miapp-node .
Arráncala
docker run miapp-node
Y voilà: tu código, aislado y listo para correr en cualquier máquina del planeta.
Docker Compose: la herramienta que te salva proyectos
Cuando tienes varios servicios (backend + frontend + base de datos), levantarlos a mano es un infierno.
Con Docker Compose lo haces con un solo comando.
docker-compose.yml
version: "3.9"
services:
web:
image: nginx
ports:
- "8080:80"
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: root
Ejecuta todo con:
docker compose up -d
Ya está. Dos servicios funcionando como si nada.
Buenas prácticas rápidas (para quedar como experto)
Usa imágenes alpine para reducir peso
No metas secretos en el Dockerfile, usa siempre .env
Utiliza .dockerignore
Guarda los datos en volúmenes, no dentro del contenedor
Etiqueta tus imágenes (:v1, :latest, etc.)

Ingeniero en Informática, Investigador, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.