Docker: qué es y por qué aprenderlo
Descubre qué es Docker, su funcionamiento con contenedores y por qué aprenderlo es clave para desarrolladores y administradores de sistemas.
Imagina que terminas de desarrollar una aplicación web, la pruebas en tu equipo y funciona de maravilla. Luego la subes al servidor de producción y, sorpresa: falla por una dependencia que no está, una versión de PHP incorrecta o un conflicto con otro servicio. Docker llega para acabar con ese caos, empaquetando tu aplicación y todo lo que necesita para ejecutarse en un solo contenedor portátil.
¿Qué es Docker exactamente?
Docker es una plataforma de contenedores que permite ejecutar aplicaciones de forma aislada del sistema anfitrión. Piensa en un contenedor como una “caja ligera” que incluye tu código, librerías, variables de entorno y archivos de configuración. A diferencia de una máquina virtual, no virtualiza el hardware completo, sino que comparte el kernel del sistema operativo anfitrión. Esto lo hace mucho más rápido y eficiente en recursos.
La magia está en las imágenes, plantillas de solo lectura que defines con un archivo Dockerfile. Cada vez que ejecutas una imagen, obtienes un contenedor en marcha.
¿Por qué deberías aprenderlo?
Si trabajas con servidores, desarrollo web o administración de sistemas, Docker te va a cambiar la vida por tres razones clave:
- Reproducibilidad total: “En mi máquina funciona” deja de ser una excusa. Con Docker, lo que ejecutas en local es exactamente lo mismo que en producción.
- Aislamiento limpio: Puedes tener WordPress con PHP 7.4, una app Node.js y una base de datos MySQL 8, todo en el mismo servidor, sin conflictos. Cada uno va en su contenedor.
- Despliegue ultrarrápido: Levantar o destruir servicios es cuestión de segundos. Ideal para escalar o probar configuraciones sin miedo a romper nada.
Primeros pasos: tu primer contenedor
Instala Docker en tu Linux favorito (Ubuntu/Debian):
sudo apt update
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker
Para no usar sudo siempre, añade tu usuario al grupo docker:
sudo usermod -aG docker $USER
Cierra sesión y vuelve a entrar. Ahora lanza tu primer contenedor:
docker run -d -p 8080:80 nginx
Esto descarga la imagen oficial de Nginx y la ejecuta en segundo plano, mapeando el puerto 80 del contenedor al puerto 8080 de tu máquina. Abre http://localhost:8080 y verás la página de bienvenida de Nginx.
Caso práctico: WordPress con Docker Compose
Para algo más real, vamos a levantar WordPress y MySQL con un solo comando. Crea un archivo docker-compose.yml:
version: '3.8'
services:
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: wordpress
MYSQL_USER: wpuser
MYSQL_PASSWORD: wppass
wordpress:
image: wordpress:latest
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wpuser
WORDPRESS_DB_PASSWORD: wppass
WORDPRESS_DB_NAME: wordpress
Ejecuta desde el directorio del archivo:
docker-compose up -d
En menos de un minuto tienes WordPress corriendo en localhost:8080. Para pararlo todo: docker-compose down. Así de sencillo.
Conclusión
Docker no es una moda pasajera, es una herramienta fundamental para cualquier profesional técnico hoy en día. Te ahorra tiempo, dolores de cabeza y te da un control absoluto sobre tus entornos. Empieza por jugar con contenedores básicos, luego prueba Docker Compose y pronto verás que no podrás vivir sin él.