Actualizado: 2026-07-17

Docker[1] es la plataforma de contenedores más extendida: permite construir, enviar y ejecutar aplicaciones en entornos aislados y reproducibles. Esta guía explica cómo instalar Docker Engine (el motor de contenedores: el daemon dockerd, el cliente de línea de comandos y los plugins de Compose y Buildx, sin la interfaz gráfica de Docker Desktop) en Ubuntu 24.04 LTS desde el repositorio oficial, usando el flujo moderno con clave GPG (firma criptográfica que certifica que los paquetes proceden de Docker) firmada en /etc/apt/keyrings (el viejo apt-key add - está retirado y no funciona en 24.04).

Puntos clave

  • Instalar siempre desde el repositorio oficial de Docker, no desde el de Ubuntu, así te aseguras la versión más reciente y el plugin de Compose v2 incluido.
  • En Ubuntu 24.04 (Noble Numbat) el codename noble se obtiene de /etc/os-release; el script lo inserta automáticamente en la línea del repositorio.
  • La clave GPG va en /etc/apt/keyrings/docker.asc y se referencia con signed-by= en el sources.list.d. Es el único método admitido a partir de 22.04 y obligatorio en 24.04.
  • El daemon se gestiona con systemctl; activarlo al arranque evita iniciarlo a mano tras cada reinicio.
  • Tras instalar, añade tu usuario al grupo docker para no tener que anteponer sudo a cada comando (con las implicaciones de seguridad que conlleva).

Pasos previos a la instalación

Actualiza el sistema y asegúrate de tener ca-certificates y curl (suelen venir ya instalados):

sudo apt update
sudo apt install -y ca-certificates curl

Si vienes de instalaciones antiguas con paquetes de Ubuntu o snaps, quítalos primero para evitar conflictos con docker-ce:

for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do
  sudo apt remove -y "$pkg" 2>/dev/null || true
done

Añadir el repositorio oficial de Docker

Crea el directorio de keyrings y descarga la clave GPG de Docker:

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

Añade el repositorio referenciando la clave por ruta (signed-by=). El codename de Ubuntu se lee de /etc/os-release; en 24.04 devuelve noble:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" 
  | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
Logotipo de Ubuntu 24.04 LTS (Noble Numbat), sistema operativo de referencia para esta instalación de Docker

Logotipo de Ubuntu 24.04 LTS (Noble Numbat), sistema operativo de referencia para esta instalación de Docker

Instalar el motor de Docker

Instala el paquete docker-ce (Docker Engine, edición Community) más los plugins habituales (Buildx y Compose v2 vienen como subcomandos de docker):

sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Tras la instalación, docker compose (sin guion) ya funciona. El viejo binario standalone docker-compose queda obsoleto.

Configurar el daemon de Docker

El daemon de Docker (dockerd) gestiona contenedores, imágenes, redes y volúmenes. Su configuración vive en /etc/docker/daemon.json:

sudo nano /etc/docker/daemon.json

Opciones habituales:

  • "log-driver": cambia el motor de logs (por defecto json-file; en producción suele moverse a journald o local).
  • "default-address-pools": personaliza los rangos de IP para redes de contenedores cuando chocan con la LAN.
  • "data-root": mueve el directorio de datos a otra partición (útil cuando /var/lib/docker crece).

Tras modificar el fichero, recarga el daemon:

sudo systemctl restart docker

Verificar la instalación

Comprueba la versión:

docker --version
docker compose version

Verifica que el daemon está activo y configurado para arrancar con el sistema:

sudo systemctl status docker

La salida debe mostrar active (running). Si no arranca automáticamente, actívalo:

sudo systemctl enable docker

Una primera prueba rápida:

sudo docker run --rm hello-world
Logotipo de Docker, motor de contenedores que aísla aplicaciones del entorno de ejecución

Logotipo de Docker, motor de contenedores que aísla aplicaciones del entorno de ejecución

Añadir tu usuario al grupo docker

Por defecto, solo root y los miembros del grupo docker (un grupo del sistema que la instalación crea automáticamente y que da acceso al socket /var/run/docker.sock sin pasar por sudo) pueden hablar con el daemon. Añade tu usuario y aplica el cambio en la sesión actual:

sudo usermod -aG docker $USER
newgrp docker

Ejecuta docker run hello-world de nuevo, esta vez sin sudo, para confirmar que el cambio surtió efecto. Pertenecer al grupo docker equivale a tener privilegios de root sobre el equipo, así que no añadas usuarios en los que no confíes.

Con Docker instalado, los siguientes pasos naturales son orquestar aplicaciones multi-contenedor con Docker Compose (ya incluido como docker compose), o configurar Traefik (proxy inverso que enruta el tráfico entrante hacia el contenedor correcto según el dominio) para exponer servicios en internet. Para ejecutar modelos de lenguaje grandes en este mismo equipo, la guía de Ollama (herramienta que descarga y sirve LLMs de forma local con una API compatible con OpenAI) repasa el catálogo de modelos disponibles. Esta guía también está disponible en inglés.

Preguntas frecuentes

¿Necesito desinstalar Docker Desktop antes de instalar Docker Engine?

Sí, si usas Ubuntu como sistema de escritorio con Docker Desktop instalado, desinstálalo primero (sudo apt remove docker-desktop) para evitar dos daemons compitiendo por el mismo socket. En un servidor sin interfaz gráfica, Docker Desktop nunca está presente y este paso no aplica.

¿Por qué el comando docker falla con «permission denied» sin sudo?

Porque tu usuario todavía no pertenece al grupo docker, o la sesión no ha recargado los grupos tras añadirte. Ejecuta sudo usermod -aG docker $USER y luego newgrp docker (o cierra sesión y vuelve a entrar).

¿Qué diferencia hay entre Docker Engine y Docker Desktop?

Docker Engine es el motor de contenedores en sí (el daemon dockerd, el cliente de línea de comandos y el runtime), instalado directamente sobre Linux mediante el paquete docker-ce. Docker Desktop añade una interfaz gráfica y una máquina virtual ligera para usarlo en macOS o Windows; en un servidor Ubuntu no hace falta.

Conclusión

Instalar Docker desde el repositorio oficial en Ubuntu 24.04 LTS te deja con la versión estable más reciente, el plugin de Compose v2 ya integrado y el daemon listo en systemd. El flujo de apt-key está retirado en 24.04. El método con signed-by= apuntando a /etc/apt/keyrings/docker.asc es el único que sobrevive a una instalación limpia.

Fuentes: [1] Install Docker Engine on Ubuntu (Docker Docs)[2], [2] Linux post-installation steps for Docker Engine (Docker Docs)[3], [3] Ubuntu Server Documentation[4], [4] Registro de versiones de docker-ce en GitHub[5].

Fuentes

  1. Docker
  2. Install Docker Engine on Ubuntu (Docker Docs)
  3. Linux post-installation steps for Docker Engine (Docker Docs)
  4. Ubuntu Server Documentation
  5. Registro de versiones de docker-ce en GitHub

Ruta: Self-hosting con Docker: de cero a producción