Cuando empecé a meterme en el mundo del Home Lab y los servidores locales, había una palabra que se repetía por todos lados: Docker.
Al principio me sonaba complicado, pero hoy te puedo decir que fue una de las herramientas que más me ha ayudado a aprender y automatizar todo lo que tengo corriendo localmente.
Así que si estás empezando, o simplemente te da curiosidad saber qué es Docker, cómo funciona y cómo se usa, este blog es para ti.
🧠 ¿Qué es Docker?
Docker es una herramienta que te permite crear, ejecutar y gestionar contenedores.
Un contenedor es como una pequeña máquina virtual, pero más ligera y enfocada en ejecutar una sola aplicación con todas sus dependencias.
En vez de instalar una app directamente en tu sistema operativo, la corres dentro de un contenedor, aislada y lista para funcionar.
🧰 ¿Cómo funciona Docker?
Imagina que quieres correr una app como WordPress.
Necesitas PHP, MySQL, Apache, configuraciones, etc.
Con Docker solo necesitas una imagen (que es como una receta ya preparada), la ejecutas, y en segundos tienes todo listo y funcionando, sin afectar tu sistema principal.
Docker usa:
- Imágenes: archivos que contienen todo lo necesario para ejecutar algo.
- Contenedores: instancias activas de esas imágenes.
- Volúmenes: espacios donde se guardan datos persistentes.
- Redes: para que los contenedores se comuniquen entre sí.
💻 Comandos básicos de Docker
Aquí algunos comandos que uso todo el tiempo:
# Ver contenedores corriendo
docker ps
# Ver todos los contenedores (incluso detenidos)
docker ps -a
# Descargar una imagen
docker pull nombre_imagen
# Correr un contenedor
docker run -d -p 8080:80 nombre_imagen
# Detener un contenedor
docker stop nombre_contenedor
# Eliminar un contenedor
docker rm nombre_contenedor
# Ver logs
docker logs nombre_contenedor
# Entrar a la terminal del contenedor
docker exec -it nombre_contenedor bash
🛠️ Docker Compose: porque nadie quiere escribir 3 comandos por cada contenedor
Docker Compose te permite levantar varios contenedores con una sola instrucción, usando un archivo docker-compose.yml
.
Ejemplo simple con Nginx:
version: '3'
services:
web:
image: nginx
ports:
- "8080:80"
Con solo correr:
docker compose up -d
Tienes tu contenedor corriendo, con todo configurado desde ese archivo.
Es limpio, reproducible y súper práctico.
🪟 ¿Cómo instalar Docker?
En Windows:
- Ve a https://www.docker.com/products/docker-desktop
- Descarga Docker Desktop.
- Instálalo como cualquier programa.
- Activa WSL2 si es necesario (te guía durante la instalación).
Docker Desktop te permite usar Docker y Docker Compose desde una terminal, y además trae una pequeña interfaz para ver tus contenedores.
En Linux (Ubuntu):
sudo apt update
sudo apt install docker.io -y
sudo systemctl enable docker
sudo systemctl start docker
Para usar Docker sin sudo
:
sudo usermod -aG docker $USER
(Cierra sesión y vuelve a entrar para que surta efecto)
Para instalar Docker Compose:
sudo apt install docker-compose -y
🖥️ Portainer: Docker, pero visual
Aunque Docker funciona desde la terminal, puedes usar Portainer, una interfaz gráfica para gestionarlo.
Con Portainer puedes ver tus contenedores, redes, imágenes, y hasta editar tus stacks de Docker Compose desde el navegador.
Yo lo uso todos los días para monitorear mis servicios sin tener que abrir la terminal cada rato.
🤔 ¿Vale la pena aprender Docker?
Sin duda. Ya sea que estés montando un Home Lab, aprendiendo devops o simplemente quieres correr tus apps favoritas de forma más limpia y controlada, Docker es una herramienta clave.
Aprenderlo me ayudó a:
- Correr servicios sin instalar cosas en el sistema
- Hacer backups más fáciles
- Probar nuevas apps sin miedo a “romper” el sistema
- Automatizar todo
Y lo mejor es que una vez que lo entiendes, lo usas para TODO.
¿Tú ya estás usando Docker? ¿Qué contenedores tienes corriendo?
Si te interesa, en otro post puedo compartirte los que yo tengo en mi Home Lab actual 👨💻
Discussion