Instalar Docker en Linux: guía para Ubuntu, Debian y RHEL | INTROSERV
EUR
european

EUR

usa

USD

Spanish Es
Ex. VAT Ex. VAT 0%

Instala Docker en las distribuciones Linux más populares: guía de instalación de Docker en Linux

Nivel: Intermedio
Tiempo estimado: ~15 minutos
Objetivo: Configurar un entorno seguro y descentralizado mediante la instalación de Docker para autoalojar servicios personales como Nextcloud, Bitwarden y Matrix.

Introducción

Alojar sus propios servicios en la «nube» garantiza la privacidad y la plena propiedad de los datos. Para desplegar servicios como Nextcloud (almacenamiento de archivos), Bitwarden (gestión de contraseñas) o Matrix (comunicación segura) sin lidiar con complejas dependencias a nivel de host, se necesitan entornos aislados. En este tutorial veremos cómo instalar Docker en Linux para construir una base de autoalojamiento robusta y reproducible. Tanto si necesita una configuración completa de Docker en Linux para un único servidor como para una flota, todos los pasos siguientes se aplican a Ubuntu, Debian y distribuciones compatibles con RHEL. Al final de esta guía de instalación de Docker en Linux dispondrá de un entorno listo para producción, configurado con valores de seguridad predeterminados basados en buenas prácticas.

Terminología

Antes de continuar, asegúrese de comprender estos conceptos básicos:

  • Docker: una plataforma para desarrollar, distribuir y ejecutar aplicaciones en entornos aislados.
  • Docker Engine: la tecnología cliente-servidor principal que crea y ejecuta contenedores.
  • Contenedor (Container): un componente ejecutable estandarizado que combina el código fuente de una aplicación con las bibliotecas del sistema operativo y las dependencias necesarias para ejecutarla.
  • Imagen (Image): una plantilla de solo lectura con instrucciones para crear un contenedor.
  • Demonio de Docker (Docker daemon): el servicio en segundo plano que se ejecuta en el host y gestiona la construcción, ejecución y distribución de contenedores.
  • Docker CLI: la interfaz de línea de comandos que se utiliza para interactuar con el demonio.
  • Docker Hub: un registro público mantenido por Docker para encontrar y compartir imágenes de contenedores.
  • Registro (Registry): un sistema de almacenamiento y distribución de imágenes de contenedores.
  • Instalación: el proceso de dejar los programas listos para su ejecución.
  • Gestor de paquetes: una herramienta de software que automatiza la instalación, actualización, configuración y eliminación de programas.
  • Repositorio: una ubicación central donde se almacenan y mantienen los paquetes de software.
  • Repositorio oficial de Docker: la fuente de confianza mantenida por Docker para obtener paquetes de software estables.
  • Paquete: un archivo comprimido que contiene todos los ficheros que acompañan a una aplicación concreta.
  • Dependencia: un programa o biblioteca que otro programa necesita para funcionar correctamente.
  • Versión estable (Stable release): una versión de software que ha sido probada a fondo y se considera fiable para su uso en producción.
  • Versión: un estado único del software que refleja sus características y correcciones específicas.

Requisitos previos

Antes de empezar, asegúrese de que se cumplen las siguientes condiciones:

  • Sistema operativo: Ubuntu 20.04/22.04/24.04 LTS, Debian 11/12/13 o compatible con RHEL (AlmaLinux, Rocky, RHEL) 8/9/10
  • Acceso: acceso sudo o root al servidor
  • Conocimientos necesarios: manejo seguro de la línea de comandos de Linux

Paso 1: Configurar el repositorio de Docker

Para obtener la versión más reciente, segura y estable, utilice siempre el repositorio oficial de Docker en lugar de los repositorios predeterminados del sistema operativo.

Para Ubuntu:

En primer lugar, actualice el índice del gestor de paquetes de Linux e instale los paquetes necesarios para que apt pueda usar un repositorio a través de HTTPS:

sudo apt update sudo apt install ca-certificates curl gnupg lsb-release

Añada la clave GPG oficial de Docker:

sudo mkdir -m 0755 -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \ sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

Configure el repositorio estable:

echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \ https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Para Debian:

Los pasos para instalar Docker en Debian son equivalentes a los de Ubuntu, pero apuntan a la URL del repositorio específica de Debian. En primer lugar, actualice el índice del gestor de paquetes de Linux e instale los paquetes necesarios:

sudo apt update sudo apt install ca-certificates curl gnupg lsb-release

Añada la clave GPG oficial de Docker:

sudo mkdir -m 0755 -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg | \ sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

Configure el repositorio estable:

echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \ https://download.docker.com/linux/debian $(lsb_release -cs) stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Para sistemas compatibles con RHEL (AlmaLinux, Rocky, RHEL):

Instale el paquete yum-utils y configure el repositorio estable:

sudo yum install -y yum-utils sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo

Info

Docker publica paquetes para todas las distribuciones compatibles con RHEL (incluidas AlmaLinux y Rocky Linux) bajo la ruta de repositorio centos. El uso de esta URL es lo previsto y cuenta con soporte completo.

Resultado: El repositorio de Docker queda añadido al sistema, lo que permite al gestor de paquetes obtener los paquetes de Docker más recientes.

Paso 2: Instalar Docker en Ubuntu y Debian

Con el repositorio de Docker configurado, proceda a instalar Docker Engine en Ubuntu (o Debian: los comandos son idénticos). Este paso se aplica a ambas distribuciones.

En primer lugar, elimine los paquetes en conflicto que proporcionan los repositorios del sistema operativo:

sudo apt remove docker.io podman-docker containerd runc

Vuelva a actualizar el índice de paquetes de apt y utilice el gestor de paquetes de Linux para instalar los componentes necesarios:

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

Resultado: El comando se ejecuta y obtiene los paquetes y las dependencias necesarias del repositorio de Docker. El gestor de paquetes debería completar la instalación de Docker Engine sin errores.

Info

docker-ce se refiere a Docker Community Edition, la versión gratuita, ideal para quienes autoalojan sus servicios.

Paso 3: Instalar Docker en sistemas compatibles con RHEL (AlmaLinux, Rocky, RHEL)

En los sistemas basados en RHEL, utilice yum para instalar Docker Engine.

En primer lugar, elimine los paquetes en conflicto que proporcionan los repositorios del sistema operativo:

sudo yum remove docker docker-client docker-client-latest docker-common \ docker-latest docker-latest-logrotate docker-logrotate docker-engine \ podman runc

Ejecute el siguiente comando:

sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin \ docker-compose-plugin

Resultado: El gestor de paquetes instala los paquetes necesarios. Se le pedirá que acepte la clave GPG (salvo que utilice la opción -y); confírmela. Al terminar, verá un mensaje de éxito.

Paso 4: Verificación de la instalación de Docker Engine

Tras la instalación, el comportamiento del demonio de Docker varía según la distribución. En Ubuntu y Debian, docker.service se inicia automáticamente al instalarse. En las distribuciones de la familia RHEL, no.

Warning

Solo familia RHEL: si el proceso de instalación actualizó el kernel (por ejemplo, mediante una dependencia kernel-core), reinicie el servidor antes de iniciar el servicio de Docker:

sudo reboot

Omitir este paso puede hacer que systemctl start docker falle con errores de br_netfilter / addrtype, porque el kernel en ejecución ya no coincide con los módulos instalados.

Una vez que el servidor esté funcionando con el kernel actual, inicie y habilite el servicio. Los siguientes comandos son idempotentes y es seguro ejecutarlos en todos los sistemas:

sudo systemctl start docker sudo systemctl enable docker

Resultado: El demonio de Docker se inicia y el sistema crea un enlace simbólico para que arranque automáticamente en cada reinicio.

Verifique que la instalación de Docker Engine se ha realizado correctamente ejecutando la imagen hello-world:

sudo docker run hello-world

Resultado: La CLI de Docker contacta con el demonio de Docker, descarga la imagen hello-world desde Docker Hub y ejecuta un contenedor. Debería ver en el terminal un mensaje que dice «Hello from Docker!».

Paso 5: Pasos posteriores a la instalación de Docker

De forma predeterminada, ejecutar comandos de Docker requiere sudo. Para ejecutarlos como usuario sin privilegios de root, debe añadir su usuario al grupo docker. Estos son los pasos posteriores a la instalación de Docker imprescindibles para gestionar cómodamente su infraestructura autoalojada.

Cree el grupo docker (si aún no existe):

getent group docker || sudo groupadd docker

Añada su usuario al grupo docker:

sudo usermod -aG docker $USER

Resultado: Su usuario queda añadido al grupo. Para que los cambios surtan efecto, debe cerrar sesión y volver a iniciarla, o activar la nueva pertenencia al grupo en la sesión actual:

newgrp docker

Info

newgrp docker crea un nuevo shell con la pertenencia a grupos actualizada. Cualquier comando docker que ejecute a continuación funcionará sin sudo, pero solo dentro de ese nuevo shell. Si abre otro terminal, seguirá siendo necesario cerrar sesión y volver a iniciarla.

Warning

la pertenencia al grupo docker concede privilegios equivalentes al acceso root en el host. En entornos de autoalojamiento que priorizan la seguridad, considere seriamente ejecutar Docker en modo rootless (consulte el Paso 6).

Después de ejecutar newgrp docker (o de cerrar sesión y volver a iniciarla), compruebe la configuración ejecutando un comando sin sudo:

docker run hello-world

Resultado: Debería volver a ver el mensaje «Hello from Docker!», lo que confirma que los pasos posteriores a la instalación de Docker se han realizado correctamente.

Alternativa: instalación rápida mediante el script de conveniencia

Para entornos de prueba o desarrollo, Docker ofrece un script de conveniencia.

Warning

Este método no se recomienda para producción. Se ejecuta sin fijar versiones, realiza una actualización incondicional si Docker ya está instalado e instala todas las dependencias sin verificación.

Se recomienda descargar el script e inspeccionarlo antes de ejecutarlo:

curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh

Paso 6 (opcional): Ejecutar Docker en modo rootless

En entornos de autoalojamiento, ejecutar Docker en modo rootless mejora la seguridad, ya que el demonio de Docker y los contenedores se ejecutan como un usuario sin privilegios de root.

6.1 Requisitos previos

En primer lugar, detenga y deshabilite el servicio y el socket de Docker de todo el sistema, y elimine el archivo del socket:

sudo systemctl stop docker.service docker.socket sudo systemctl disable docker.service docker.socket sudo rm -f /var/run/docker.sock

Compruebe que su usuario tiene subuid y subgid configurados (normalmente se configuran automáticamente):

cat /etc/subuid cat /etc/subgid

Habilite el «lingering» para su usuario, de modo que el demonio pueda iniciarse al arrancar el sistema:

sudo loginctl enable-linger $USER

6.2 Instalar paquetes adicionales

Para Ubuntu/Debian:

sudo apt install docker-ce-rootless-extras uidmap dbus-user-session

Para AlmaLinux/RHEL (shadow-utils proporciona uidmap y suele venir preinstalado):

sudo yum install docker-ce-rootless-extras

6.3 Instalar el demonio rootless

Ejecute el script de instalación desde una sesión de inicio de sesión completa del usuario de destino (no desde sudo su ni desde un shell SSH sin inicio de sesión). Si se encuentra en un contexto sin inicio de sesión, exporte primero las variables necesarias:

export XDG_RUNTIME_DIR=/run/user/$(id -u) export DBUS_SESSION_BUS_ADDRESS=unix:path=$XDG_RUNTIME_DIR/bus

A continuación, ejecute el script de instalación:

dockerd-rootless-setuptool.sh install

Info

La primera ejecución del script de instalación inmediatamente después de habilitar el lingering puede ser inestable. Si el demonio no se inicia, simplemente vuelva a ejecutar el script de instalación.

6.4 Configurar las variables de entorno

Añada las siguientes variables al archivo de configuración de su shell (por ejemplo, ~/.bashrc):

export PATH=/usr/bin:$PATH export DOCKER_HOST=unix:///run/user/$(id -u)/docker.sock

Cargue el archivo (source) o reinicie el shell para aplicar los cambios.

6.5 Limitaciones del modo rootless

  • No se pueden publicar puertos < 1024 (Docker ofrece soluciones alternativas como setcap, el reenvío de puertos de slirp4netns o el enrutamiento).
  • No admite --net=host.
  • No se admiten el modo Swarm ni las redes overlay.
  • No se admite AppArmor.
  • La opción --privileged no concede acceso root a nivel de host.
  • Los datos se almacenan en ~/.local/share/docker (tenga esto en cuenta para copias de seguridad y cuotas).
  • Requiere cgroup v2.
  • Utiliza el controlador de almacenamiento overlayfs en lugar de overlay2.

Reversión (rollback)

Si necesita revertir la instalación de Docker en Linux, ya sea una configuración estándar o una rootless, siga los pasos siguientes en orden.

1. Reversión de rootless (omítala si no configuró el modo rootless):

Si configuró el modo rootless, revierta primero esos cambios, antes de eliminar los paquetes:

dockerd-rootless-setuptool.sh uninstall rm -rf ~/.local/share/docker sudo loginctl disable-linger $USER

Info

Ejecutar la desinstalación de rootless después de haber purgado los paquetes fallará, porque el script de instalación forma parte del paquete docker-ce-rootless-extras. Desinstale siempre el modo rootless mientras los paquetes sigan presentes.

2. Eliminar los paquetes:

Debian/Ubuntu:

sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin \ docker-compose-plugin docker-ce-rootless-extras sudo rm -rf /var/lib/docker /var/lib/containerd sudo rm -f /etc/apt/sources.list.d/docker.list /etc/apt/keyrings/docker.gpg

AlmaLinux/Rocky/RHEL:

sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin \ docker-compose-plugin docker-ce-rootless-extras sudo rm -rf /var/lib/docker /var/lib/containerd sudo rm -f /etc/yum.repos.d/docker-ce.repo

3. Eliminar el grupo:

sudo groupdel docker || true

Warning

Eliminar los paquetes no elimina automáticamente las imágenes, los contenedores, los volúmenes ni los archivos de configuración personalizados. Los comandos rm -rf borran de forma permanente estos directorios de datos.

Conclusión

Su instalación de Docker en Linux está completa y verificada. La base ya está configurada de forma segura. Puede proceder a desplegar contenedores para sus herramientas autoalojadas, manteniendo el control total sobre sus archivos de Nextcloud, sus cajas fuertes de Bitwarden y sus comunicaciones de Matrix.

Versión del documento: 1.0
Última actualización: mayo de 2026
Responsable: Equipo de documentación técnica

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA