Instalar Docker en Linux es el paso que convierte la teoría de contenedores en una herramienta real de trabajo. En esta lección vas a preparar Docker Engine, activar el servicio, comprobar que responde y dejar disponible Docker Compose v2 para tus primeros proyectos.
El enfoque principal usa el repositorio oficial de Docker para Ubuntu y Debian. También verás notas para Fedora, Arch y errores comunes, pero sin convertir la lección en una guía avanzada de administración del daemon.
👉 Y recuerda, si quieres aprender más de Linux, pincha en este curso de Linux gratis.
🐳 Si quieres aprender más de Docker, pincha en este curso de Docker gratis.
Instalar Docker en Linux
Problema: muchas instalaciones fallan por mezclar paquetes de la distribución, repositorios antiguos, arquitecturas no compatibles o pasos incompletos.
Qué aporta Docker: usar el repositorio oficial instala Docker Engine, CLI, containerd, Buildx y Compose v2 con versiones mantenidas por Docker. Así reduces diferencias raras entre guías y sistemas.
| Elemento | Para qué sirve | Cómo comprobarlo |
|---|---|---|
| Docker Engine | Daemon y motor de contenedores. | docker version muestra Client y Server. |
| containerd | Runtime de alto nivel usado por Docker. | systemctl status containerd. |
| Compose v2 | Gestiona stacks con varios servicios. | docker compose version. |
| hello-world | Prueba final de descarga y ejecución. | docker run –rm hello-world. |
Antes de empezar
Trabaja en una máquina de laboratorio o en un entorno donde tengas permisos de sudo. Si estás en producción, no instales ni reinicies servicios sin ventana de mantenimiento y backup de configuración.
uname -m
lsb_release -a 2>/dev/null || cat /etc/os-release
sudo systemctl status docker --no-pager- Usa una distribución soportada por Docker o adapta los pasos a su documentación oficial.
- Evita mezclar repositorios no oficiales si quieres una instalación limpia.
- Si ya tienes paquetes antiguos como docker.io o docker-compose legacy, revisa si conviene retirarlos antes.
Ubuntu y Debian con repo oficial
En Ubuntu cambia la URL del repositorio según distribución. En Debian, el bloque es equivalente, pero la ruta oficial usa linux/debian en lugar de linux/ubuntu. Comprueba siempre la documentación oficial si estás en una versión nueva o no LTS.
sudo apt-get update
sudo apt-get install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo ${UBUNTU_CODENAME:-$VERSION_CODENAME}) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginEste bloque instala el plugin moderno de Compose v2. La forma actual de invocarlo es docker compose, con espacio, no docker-compose como binario legacy.
Activar y verificar
Una instalación no está terminada hasta comprobar el servicio, cliente/servidor, Compose y una ejecución mínima. Estos comandos son seguros para laboratorio; hello-world descarga una imagen pequeña y ejecuta un contenedor de prueba.
sudo systemctl enable --now docker
sudo systemctl status docker --no-pager
docker version
docker compose version
docker run --rm hello-world- Si docker version muestra Client pero no Server, la CLI no está hablando con el daemon.
- Si hello-world funciona, Docker puede descargar una imagen y crear un contenedor.
- Si Compose responde, ya puedes continuar con lecciones de stacks y compose.yml.
Permisos del usuario
Para usar Docker sin sudo, puedes añadir tu usuario al grupo docker. Hazlo solo en equipos donde entiendas el riesgo: pertenecer a ese grupo da mucho control sobre el host.
sudo usermod -aG docker $USER
# Cierra sesión y vuelve a entrar para aplicar el grupo.
groups
# Prueba después sin sudo:
docker psSi sigue fallando tras usermod, cierra sesión por completo y vuelve a entrar. En SSH, desconecta y reconecta. En escritorio, reinicia la sesión gráfica si hace falta.
Notas para otras distribuciones
Fedora y RHEL
Usa la documentación oficial de Docker para configurar el repositorio RPM. Evita mezclar paquetes de Podman, moby-engine y Docker CE sin entender qué proporciona cada uno.
Arch Linux
En Arch suele bastar instalar docker y docker-compose desde repositorios, activar el servicio y revisar permisos. Aun así, comprueba la wiki y los paquetes actuales antes de automatizarlo.
Servidores minimalistas
En servidores sin systemd, contenedores LXC o VPS muy recortados, algunos pasos pueden cambiar. Si el daemon no arranca, revisa kernel, cgroups, módulos y logs antes de repetir comandos a ciegas.
Errores comunes
- Usar una guía de Ubuntu en Debian sin cambiar el repositorio.
- Instalar docker-compose legacy y pensar que es Compose v2.
- Olvidar activar el servicio Docker con systemd.
- No cerrar sesión tras añadir el usuario al grupo docker.
- Ejecutar comandos de limpieza destructivos para arreglar un problema de permisos.
- Ignorar que el grupo docker es un permiso sensible.
Lecciones relacionadas del curso Docker
- Docker Engine: entiende qué acabas de instalar.
- Docker Compose: siguiente paso para levantar stacks.
- contenedor Docker: aprende qué se ejecuta al hacer docker run.
- guía completa de Docker: índice principal del curso.
Documentación oficial y recursos
- Install Docker Engine on Ubuntu: guía oficial para Ubuntu.
- Install Docker Engine on Debian: guía oficial para Debian.
- Install Docker Engine on Fedora: guía oficial para Fedora.
- Linux post-installation steps: pasos oficiales posteriores a la instalación.
Si puedes ejecutar hello-world y ver versiones de Docker Engine y Compose, la base ya está lista. A partir de aquí puedes pasar a contenedores, imágenes, Dockerfile y Compose sin volver a tocar la instalación en cada lección.
La idea final es simple: instalar Docker en Linux no es solo copiar comandos, sino dejar un motor funcional, verificable y seguro para seguir practicando dentro del curso.

