Cómo instalar Docker en Ubuntu
En esta página
Docker ejecuta aplicaciones en contenedores: cada uno incluye todo lo que necesita, así que funciona igual en tu portátil que en un servidor. Webs, bases de datos, bots y servidores de juegos se pueden arrancar con un solo comando o un solo archivo de Compose.
Esta guía instala Docker Engine y Docker Compose en Ubuntu 24.04 o 22.04 desde el repositorio oficial de Docker y repasa los ajustes que importan en un servidor real: permisos, logs y firewall.
Antes de empezar
- Un Ubuntu compatible: Docker es compatible con las versiones de 64 bits de Ubuntu 26.04, 24.04 y 22.04 LTS. Comprueba la tuya con
cat /etc/os-release. - Un servidor KVM, no un contenedor: Docker necesita funciones propias del kernel. Funciona en cualquier VPS KVM, pero a menudo no en planes basados en contenedores (OpenVZ o LXC).
- Root o un usuario con sudo. Los comandos de abajo usan
sudo; si has iniciado sesión como root, puedes omitirlo.
En servidores, evita el paquete docker.io del repositorio de Ubuntu y la versión Snap: el repositorio de Docker recibe antes las nuevas versiones y es el que usa la propia documentación de Docker.
Docker necesita una máquina virtual de verdad: los planes VPS KVM de HytHost con Ubuntu y acceso root completo empiezan en €2.92/mes.
Ver planes VPSPaso 1: Eliminar paquetes en conflicto
Si ya instalaste Docker antes desde otra fuente, elimina primero esos paquetes. En un servidor nuevo, apt simplemente indicará que no hay ninguno instalado:
sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc docker-buildx podman-docker containerd runc | cut -f1)
Esto no borra las imágenes ni los volúmenes de /var/lib/docker/.
Paso 2: Añadir el repositorio de Docker
Estos comandos, sacados de la documentación de Docker, añaden la clave de firma de Docker y su repositorio apt para tu versión de Ubuntu:
sudo apt update
sudo apt install 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
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update
Paso 3: Instalar Docker y Compose
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Esto instala Docker Engine, la herramienta de línea de comandos, el builder Buildx y el plugin de Compose. Comprueba que funciona:
sudo docker run hello-world docker compose version
El primer comando descarga una pequeña imagen de prueba y muestra un mensaje de bienvenida. En Ubuntu, Docker se inicia automáticamente al arrancar, así que no hay nada que activar.
Compose es el comando docker compose, con espacio. El antiguo docker-compose con guion es la primera versión, ya retirada; las guías que todavía lo usan también funcionan con el comando nuevo.
Paso 4: Permisos y rotación de logs
Usar docker sin sudo. Añade tu usuario al grupo docker y luego cierra sesión y vuelve a entrar:
sudo usermod -aG docker $USER
Ten en cuenta que la propia Docker advierte de que este grupo otorga privilegios de nivel root: cualquiera que pertenezca a él puede controlar todo el servidor. Añade solo a usuarios a los que darías root.
Limita el tamaño de los logs. Por defecto, los logs de los contenedores crecen sin límite y pueden llenar el disco. Crea /etc/docker/daemon.json:
{
"log-driver": "json-file",
"log-opts": { "max-size": "10m", "max-file": "3" }
}
Después ejecuta sudo systemctl restart docker. El límite se aplica a los contenedores creados tras el cambio, así que vuelve a crear los existentes.
Un primer archivo de Compose
Compose describe tus contenedores en un solo archivo. Crea una carpeta con un compose.yaml:
services:
web:
image: nginx:stable
ports:
- "127.0.0.1:8080:80"
restart: unless-stopped
Arráncalo con docker compose up -d, compruébalo con docker compose ps y lee sus logs con docker compose logs. restart: unless-stopped vuelve a levantar el contenedor tras un fallo o un reinicio. El puerto está vinculado a 127.0.0.1 a propósito, como explica la siguiente sección.
Docker y ufw: la trampa del firewall
Esto pilla a casi todo el mundo. Cuando publicas un puerto, por ejemplo -p 8080:80, Docker añade sus propias reglas de firewall, que se aplican antes que las de ufw. El puerto queda abierto a internet aunque ufw diga que está cerrado.
- Vincula los puertos a localhost cuando solo los necesite el propio servidor, como una base de datos o una app detrás de un proxy inverso:
127.0.0.1:8080:80. - No publiques nunca los puertos de las bases de datos; deja que los contenedores se comuniquen a través de una red de Docker.
- Para filtrar por dirección de origen, añade reglas a la cadena iptables
DOCKER-USER, que Docker revisa antes que las suyas.
Lo mismo vale para los servidores de juegos que corren en Docker; consulta cómo configurar un VPS para servidores de juegos.
Docker en un VPS de HytHost
Los planes VPS de HytHost funcionan sobre KVM, así que cada VPS tiene su propio kernel y Docker funciona sin restricciones. Elige Ubuntu 24.04 o 22.04 al hacer el pedido, conéctate por SSH y sigue los pasos anteriores. Tienes acceso root completo, almacenamiento SSD y protección DDoS, y puedes pasar a un plan mayor más adelante a medida que crecen tus contenedores.
Preguntas frecuentes
Docker es compatible con las versiones de 64 bits de Ubuntu 26.04, 24.04 y 22.04 LTS. Otros sistemas basados en Ubuntu, como Linux Mint, no tienen soporte oficial.
En un servidor de producción, no. Docker indica que su script de conveniencia es para entornos de desarrollo y no se recomienda en producción; además puede saltar a una nueva versión mayor. Usa en su lugar el método del repositorio.
docker-compose con guion es la versión antigua, ya retirada. Hoy Compose es un plugin de Docker que se usa como docker compose y se instala con el paquete docker-compose-plugin.
Los puertos publicados por Docker se saltan ufw. Vincula el puerto a 127.0.0.1 si debe quedarse en local, o fíltralo en la cadena DOCKER-USER.
En un VPS KVM, sí. Los planes VPS basados en contenedores, como OpenVZ, a menudo no pueden ejecutar Docker o necesitan ajustes especiales del proveedor.
Ejecuta tus contenedores en un VPS
Los planes VPS KVM de HytHost ejecutan Docker sin restricciones, con acceso root completo y Ubuntu 24.04, desde €2.92/mes.
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hours¿Te ha resultado útil esta guía?