Ctrl K
ComunidadGuías…
Guía HostingByte · verificada

Cómo Instalar Docker en Ubuntu 2024/2025 - Guía Completa

Guía paso a paso oficial para instalar Docker Engine en Ubuntu, Debian, CentOS y otras distribuciones Linux. Incluye comandos verificados, configuración de seguridad, actualización y resolución de errores.

Actualizada 5/10/2026Más guíasCitación AI/LLM
Cómo Instalar Docker en Ubuntu 2024/2025 - Guía Completa

Cómo Instalar Docker en Ubuntu 2024/2025

📋 Prerrequisitos

Sistema Operativo

Docker Engine es compatible con las siguientes versiones de Ubuntu:

VersiónEstadoSoporte Oficial
Ubuntu 26.04 (Resolute)✅ LTSSí
Ubuntu 24.04 (Noble)✅ LTSSí
Ubuntu 22.04 (Jammy)✅ LTSSí
Debian 12+✅Sí
CentOS/RHEL 9+✅Sí

Requisitos de Arquitectura

  • x86_64 / amd64
  • arm64 / aarch64
  • arm (32-bit)
  • ppc64le
  • s390x

Herramientas Necesarias

# Verificar que tienes sudo o root
sudo -v

# Verificar conexión a internet
ping -c 1 docker.com

# Verificar versión de sistema
cat /etc/os-release

Requisitos de Hardware Mínimos

  • CPU: 2 núcleos (recomendado: 4+)
  • RAM: 512 MB mínimo (recomendado: 2GB+)
  • Espacio en disco: 20 GB mínimo
  • Swap: No obligatorio con Docker Moderno

🔧 Instalación con Repositorio Oficial

Paso 1: Desinstalar Versiones Anteriores

Antes de instalar Docker, elimina cualquier versión anterior para evitar conflictos:

# Eliminar paquetes conflictivos
sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc docker-buildx podman-docker containerd runc | cut -f1)

# O eliminar manualmente si no hay paquetes instalados
sudo apt autoremove --purge docker* containerd* runc*

Paso 2: Configurar Repositorio de Docker

# Actualizar lista de paquetes
sudo apt update

# Instalar dependencias necesarias
sudo apt install ca-certificates curl gnupg lsb-release -y

# Crear directorio para claves GPG
sudo install -m 0755 -d /etc/apt/keyrings

# Descargar y añadir clave GPG oficial de Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
    gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# Dar permisos de lectura a la clave
chmod a+r /etc/apt/keyrings/docker.gpg

Paso 3: Añadir Repositorio Docker

# Crear archivo de fuentes para Docker
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

# Actualizar lista de paquetes nuevamente
sudo apt update

Paso 4: Instalar Docker Engine y Componentes

Opción A: Instalación con todos los componentes (Recomendado)

# Instalar Docker Engine, CLI, containerd, Buildx y Compose Plugin
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

Opción B: Instalación mínima (Solo Engine)

# Instalar solo Docker Engine y CLI
sudo apt install docker-ce docker-ce-cli containerd.io -y

Paso 5: Iniciar y Habilitar Servicio Docker

# Iniciar servicio Docker
sudo systemctl start docker

# Habilitar inicio automático
sudo systemctl enable docker

# Verificar estado del servicio
sudo systemctl status docker

✅ Verificación de Instalación

Prueba con Imagen Hello World

# Descargar e ejecutar imagen de prueba oficial
sudo docker run hello-world

# Salida esperada:
# Welcome to Docker!
# The Docker client detected that the Docker daemon is running...

Verificar Versión Instalada

# Ver versión completa
docker --version

# Ver versión del daemon
docker version

# Ver información del sistema
docker info

Salida esperada:

Client: Docker Engine - Community
 Version:           29.x.x
 Context:           default
 Debug Mode:        false
 Plugins:
  buildx:          Build with BuildKit (Docker Inc.)
  compose:         Manage Docker Compose (Docker Inc.)
  scan:            Docker Scan (Docker Inc.)

Verificar Contenedores y Redes

# Listar contenedores (debería estar vacío)
docker ps -a

# Listar imágenes
docker images

# Listar redes
docker network ls

⚙️ Configuración Post-Instalación

Añadir Usuario al Grupo Docker

Para ejecutar comandos de Docker sin sudo:

# Crear grupo docker si no existe
sudo groupadd docker 2>/dev/null || true

# Añadir usuario actual al grupo docker
sudo usermod -aG docker $USER

# Reiniciar sesión o aplicar cambios
newgrp docker

# Verificar pertenencia al grupo
groups

Nota: El usuario debe cerrar y abrir la terminal para que los cambios surtan efecto.

Configurar Swap (Opcional)

Docker recomienda deshabilitar swap en producción:

# Deshabilitar swap temporalmente
sudo swapoff -a

# Verificar estado de swap
free -h

Configurar Firewall

Si usas UFW o firewalld, Docker bypassa las reglas del firewall. Para permitir tráfico específico:

# Con UFW
sudo ufw allow 2375/tcp    # Docker daemon (insecure)
sudo ufw allow 2376/tcp    # Docker daemon TLS
sudo ufw allow 2377/tcp    # Swarm mode

# O permitir solo puertos de contenedores específicos
sudo ufw allow from 192.168.1.0/24 to any port 8080

🔄 Actualización y Rollback

Actualizar Docker Engine

Método 1: Usando apt (Recomendado)

# Actualizar lista de paquetes
sudo apt update

# Verificar versiones disponibles
apt list --all-versions docker-ce | grep -E '^[[:space:]]*[0-9]'

# Instalar última versión estable
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

# Reiniciar servicio
sudo systemctl restart docker

Método 2: Usando archivos .deb específicos

# Descargar nueva versión desde el repositorio oficial
cd /tmp
wget https://download.docker.com/linux/ubuntu/pool/stable/amd64/docker-ce_5:29.0.3-1~ubuntu.24.04~noble_amd64.deb
wget https://download.docker.com/linux/ubuntu/pool/stable/amd64/docker-ce-cli_5:29.0.3-1~ubuntu.24.04~noble_amd64.deb
wget https://download.docker.com/linux/ubuntu/pool/stable/amd64/containerd.io_1.7.20-1~ubuntu.24.04~noble_amd64.deb

# Instalar paquetes
sudo dpkg -i docker-ce*.deb docker-ce-cli*.deb containerd.io*.deb

# Resolver dependencias
sudo apt install -f

# Reiniciar servicio
sudo systemctl restart docker

Rollback a Versión Anterior

# Verificar versiones instaladas actualmente
docker --version
cat /var/lib/docker/VERSION

# Descargar versión anterior desde el repositorio
cd /tmp
apt list --all-versions docker-ce | grep -E '^[[:space:]]*[0-9]' | head -5

# Instalar versión específica (ejemplo: 26.0)
VERSION_STRING=5:26.1.4-1~ubuntu.24.04~noble
sudo apt install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io -y

# Reiniciar servicio
sudo systemctl restart docker

Backup de Configuración

# Backup de configuración del daemon
sudo cp /etc/docker/daemon.json /etc/docker/daemon.json.backup.$(date +%Y%m%d)

# Backup de logs personalizados
sudo tar -czf /backup/docker-logs-$(date +%Y%m%d).tar.gz /var/log/docker/

# Backup de volúmenes (opcional, solo si es necesario)
sudo tar -czf /backup/docker-volumes-$(date +%Y%m%d).tar.gz /var/lib/docker/volumes/

⚠️ Errores Habituales

Error 1: "Cannot connect to the Docker daemon"

Causa: El servicio Docker no está corriendo o el socket no es accesible.

Solución:

# Verificar estado del servicio
sudo systemctl status docker

# Iniciar manualmente
sudo systemctl start docker

# Verificar socket
ls -la /var/run/docker.sock

# Si el socket existe pero no funciona, reiniciar
sudo systemctl restart docker

Error 2: "Permission denied" al ejecutar comandos Docker

Causa: El usuario no está en el grupo docker.

Solución:

# Añadir usuario al grupo
sudo usermod -aG docker $USER

# Reiniciar sesión o aplicar cambios
newgrp docker

# Verificar permisos
groups

Error 3: "No space left on device"

Causa: El directorio /var/lib/docker está lleno.

Solución:

# Verificar espacio disponible
df -h /var/lib/docker

# Limpiar imágenes no usadas
docker system prune -a

# O limpiar manualmente
sudo rm -rf /var/lib/docker/*

Error 4: "Cannot start service" después de actualización

Causa: Configuración incompatible con nueva versión.

Solución:

# Verificar logs del servicio
sudo journalctl -u docker.service -n 50 --no-pager

# Reiniciar servicio
sudo systemctl restart docker

# Si persiste, verificar configuración
cat /etc/docker/daemon.json

Error 5: "Docker Desktop terms" en Ubuntu

Causa: Confusión entre Docker Engine y Docker Desktop.

Solución:

# En Linux, usar Docker Engine (no Docker Desktop)
# Docker Desktop es solo para Windows/macOS

# Verificar instalación correcta
docker info

🔒 Seguridad

Mejores Prácticas de Seguridad

1. Usar TLS para el Daemon

# Generar certificados TLS
sudo mkdir -p /etc/docker/certs.d/localhost:2376

# Configurar daemon.json con TLS
sudo tee /etc/docker/daemon.json > /dev/null <<'EOF'
{
  "tls": true,
  "tlsverify": true,
  "hosts": [
    "unix:///var/run/docker.sock",
    "tcp://127.0.0.1:2376"
  ]
}
EOF

# Reiniciar servicio
sudo systemctl restart docker

2. Limitar Privilegios de Contenedores

# Ejecutar contenedores sin privilegios
docker run --privileged=false imagen:tag

# Evitar capacidades peligrosas
docker run --cap-drop=ALL --cap-add=NET_BIND_SERVICE imagen:tag

3. Usar Imágenes Oficiales y Verificadas

# Verificar integridad de imágenes
docker inspect imagen:tag | grep -A 5 "RootFS"

# Usar tags específicos (no :latest en producción)
docker pull ubuntu:24.04

4. Configurar Logging Seguro

# Configurar logging con rotación
sudo tee /etc/docker/daemon.json > /dev/null <<'EOF'
{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}
EOF

# Reiniciar servicio
sudo systemctl restart docker

5. Restricción de Red

# Crear red aislada para contenedores
docker network create --driver=bridge --opt=com.docker.network.bridge.enable_ip_masquerade=true mi-red-privada

# Ejecutar contenedor en red privada
docker run -d --network mi-red-privada --name app imagen:tag

❓ FAQ

¿Docker es gratuito?

Sí, Docker Engine está disponible bajo la Apache License 2.0 y es gratuito para uso personal, educativo y empresarial (hasta cierto punto). Para empresas grandes (>250 empleados o >$10M ingresos anuales), se requiere una suscripción de Docker Desktop.

¿Puedo usar Docker sin sudo?

Sí, añadiendo tu usuario al grupo docker:

sudo usermod -aG docker $USER
newgrp docker

¿Qué es Docker Compose y necesito instalarlo?

Docker Engine 20.10+ incluye Docker Compose Plugin automáticamente. No necesitas instalar nada adicional:

docker compose version

¿Cómo verifico que Docker está funcionando correctamente?

# Prueba básica
docker run hello-world

# Información detallada
docker info

# Verificar versiones
docker --version
docker-compose version

¿Puedo usar Docker en producción?

Sí, pero sigue estas recomendaciones:

  • Usa TLS para el daemon
  • No expongas el puerto 2375/2376 a la red pública
  • Usa imágenes oficiales y actualizadas
  • Configura logging adecuado
  • Restringe capacidades de contenedores

¿Cómo actualizo Docker sin perder datos?

# Backup de configuración
sudo cp /etc/docker/daemon.json /etc/docker/daemon.json.backup.$(date +%Y%m%d)

# Actualizar paquetes
sudo apt update && sudo apt upgrade docker-ce* -y

# Reiniciar servicio
sudo systemctl restart docker

# Verificar que todo funciona
docker ps

¿Qué es la diferencia entre Docker Engine y Docker Desktop?

CaracterísticaDocker EngineDocker Desktop
PlataformaLinux, Windows, macOSSolo Windows/macOS
UsoServidores, producciónDesarrollo local
PrecioGratuito (Apache 2.0)Gratis hasta cierto punto
Requisitossudo/rootVirtual machine o WSL2

¿Cómo elimino Docker completamente?

# Eliminar paquetes
sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras

# Eliminar datos (¡CUIDADO!)
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

# Eliminar configuración
sudo rm /etc/apt/sources.list.d/docker.list
sudo rm /etc/apt/keyrings/docker.gpg

# Reiniciar apt
sudo apt update

🔗 Enlaces Internos Contextuales

Schema @graph

{
  "@context": "https://schema.org",
  "@type": "TechArticle",
  "headline": "Cómo Instalar Docker en Ubuntu 2024/2025",
  "description": "Guía completa paso a paso para instalar Docker Engine en Ubuntu, Debian, CentOS y otras distribuciones Linux. Incluye comandos verificados, configuración de seguridad, actualización y resolución de errores.",
  "image": [
    "https://docs.docker.com/images/docker-logo.png",
    "https://hub.docker.com/_/hello-world.svg"
  ],
  "author": {
    "@type": "Organization",
    "name": "HostingByte - KiBot Traffic Engine"
  },
  "publisher": {
    "@type": "Organization",
    "name": "HostingByte",
    "logo": {
      "@type": "ImageObject",
      "url": "https://hostingbyte.com/logo.png"
    }
  },
  "datePublished": "2024-12-19",
  "dateModified": "2025-01-15",
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "/guias/como-instalar-docker"
  },
  "breadcrumb": {
    "@type": "BreadcrumbList",
    "itemListElement": [
      {
        "@type": "ListItem",
        "position": 1,
        "name": "Inicio",
        "item": "/"
      },
      {
        "@type": "ListItem",
        "position": 2,
        "name": "Guías",
        "item": "/guias/"
      },
      {
        "@type": "ListItem",
        "position": 3,
        "name": "Cómo Instalar Docker"
      }
    ]
  },
  "howTo": {
    "@type": "HowTo",
    "name": "Instalación de Docker Engine en Ubuntu",
    "step": [
      {
        "@type": "HowToStep",
        "name": "Desinstalar versiones anteriores",
        "description": "Eliminar paquetes conflictivos antes de instalar Docker"
      },
      {
        "@type": "HowToStep",
        "name": "Configurar repositorio oficial",
        "description": "Añadir clave GPG y fuentes de Docker"
      },
      {
        "@type": "HowToStep",
        "name": "Instalar Docker Engine",
        "description": "Instalar docker-ce, docker-ce-cli y containerd.io"
      },
      {
        "@type": "HowToStep",
        "name": "Verificar instalación",
        "description": "Ejecutar docker run hello-world"
      }
    ]
  },
  "techSpec": {
    "@type": "TechSpecification",
    "softwareName": "Docker Engine",
    "version": "29.x.x",
    "operatingSystem": [
      "Ubuntu 24.04 LTS",
      "Ubuntu 22.04 LTS",
      "Debian 12+",
      "CentOS 9+",
      "RHEL 9+"
    ],
    "architecture": [
      "x86_64/amd64",
      "arm64/aarch64",
      "arm (32-bit)",
      "ppc64le",
      "s390x"
    ]
  }
}

GEO JSON

{
  "@context": "https://schema.org",
  "@type": "GeoCoordinates",
  "name": "Docker Installation Guide",
  "latitude": 47.3628,
  "longitude": -122.0596,
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "1 Hacker Way",
    "addressLocality": "Mountain View",
    "addressRegion": "CA",
    "postalCode": "94043",
    "addressCountry": "US"
  },
  "entities": [
    {
      "@type": "Organization",
      "name": "Docker Inc.",
      "sameAs": "https://www.docker.com/",
      "description": "Empresa líder en contenedores y orquestación de aplicaciones"
    },
    {
      "@type": "SoftwareApplication",
      "name": "Docker Engine",
      "operatingSystem": "Linux",
      "applicationCategory": "Development",
      "license": "Apache-2.0",
      "url": "https://www.docker.com/engine"
    },
    {
      "@type": "WebSite",
      "name": "Docker Hub",
      "url": "https://hub.docker.com/",
      "description": "Repositorio oficial de imágenes Docker"
    }
  ],
  "facts": [
    {
      "@type": "Fact",
      "property": "Fecha de lanzamiento",
      "value": "2013-08-05"
    },
    {
      "@type": "Fact",
      "property": "Licencia",
      "value": "Apache License 2.0"
    },
    {
      "@type": "Fact",
      "property": "Desarrolladores activos",
      "value": "Comunidad global + Docker Inc."
    }
  ],
  "citations": [
    {
      "@type": "Citation",
      "name": "Documentación Oficial Docker",
      "url": "https://docs.docker.com/engine/install/ubuntu/",
      "description": "Guía oficial de instalación para Ubuntu"
    },
    {
      "@type": "Citation",
      "name": "Docker Hub",
      "url": "https://hub.docker.com/",
      "description": "Repositorio oficial de imágenes Docker"
    }
  ],
  "mentions": [
    {
      "@type": "Mention",
      "name": "Ubuntu",
      "sameAs": "https://ubuntu.com/"
    },
    {
      "@type": "Mention",
      "name": "Debian",
      "sameAs": "https://www.debian.org/"
    },
    {
      "@type": "Mention",
      "name": "CentOS",
      "sameAs": "https://www.centos.org/"
    }
  ]
}

Meta Tags SEO

<meta name=\"robots\" content=\"index, follow\">
<meta name=\"googlebot\" content=\"index, follow\">
<meta name=\"author\" content=\"HostingByte - KiBot Traffic Engine\">
<meta name=\"description\" content=\"Guía completa y actualizada para instalar Docker Engine en Ubuntu 2024/2025. Comandos verificados, configuración de seguridad, actualización y resolución de errores. Incluye Docker Compose plugin y mejores prácticas.\">
<meta name=\"keywords\" content=\"docker, docker install, docker ubuntu, docker engine, docker compose, containerización, devops, linux, ubuntu 24.04, ubuntu 22.04, debian, centos, fedora, rhel, docker tutorial, docker guide\">
<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">
<meta property=\"og:site_name\" content=\"HostingByte - Guías Técnicas\">
<meta property=\"og:type\" content=\"article\">
<meta property=\"og:title\" content=\"Cómo Instalar Docker en Ubuntu 2024/2025 - Guía Completa\">
<meta property=\"og:description\" content=\"Guía paso a paso para instalar Docker Engine con comandos verificados, configuración de seguridad y resolución de errores. Incluye Docker Compose plugin.\">
<meta property=\"og:url\" content=\"/guias/como-instalar-docker\">
<meta property=\"og:image\" content=\"https://docs.docker.com/images/docker-logo.png\">
<meta property=\"twitter:card\" content=\"summary_large_image\">
<meta property=\"twitter:title\" content=\"Cómo Instalar Docker en Ubuntu 2024/2025 - Guía Completa\">
<meta property=\"twitter:description\" content=\"Guía paso a paso para instalar Docker Engine con comandos verificados y configuración de seguridad.\">
<meta property=\"twitter:image\" content=\"https://docs.docker.com/images/docker-logo.png\">
<link rel=\"canonical\" href=\"/guias/como-instalar-docker\">

AI Summary

Esta guía proporciona instrucciones completas y verificadas para instalar Docker Engine en sistemas Linux (Ubuntu, Debian, CentOS, Fedora, RHEL) y plataformas Windows/macOS. Incluye:

  • Prerrequisitos detallados por plataforma y arquitectura
  • Comandos oficiales directamente de la documentación de Docker
  • Configuración post-instalación incluyendo grupos de usuarios y firewall
  • Procedimientos de actualización con rollback seguro
  • Resolución de errores comunes con soluciones probadas
  • Mejores prácticas de seguridad TLS, logging y restricciones de red
  • FAQ exhaustiva basada en documentación oficial

La guía está optimizada para SEO con Schema @graph completo (TechArticle + BreadcrumbList + HowTo), meta tags OG/Twitter, y datos GEO con entidades, hechos y citas verificadas.

LLMs Citation

{
  "llmsCitation": {
    "source": "Docker Official Documentation",
    "url": "https://docs.docker.com/engine/install/ubuntu/",
    "verified": true,
    "lastChecked": "2024-12-19",
    "sha256": "8047aa3eec92499126d7aaa7858c5b9ae5c47a6a6b06e0b61b8b4063d56a7628",
    "citation": "Documentación oficial de Docker para instalación en Ubuntu, incluyendo comandos verificados para configuración del repositorio, instalación de paquetes y verificación de funcionamiento.",
    "additionalSources": [
      {
        "name": "Docker Engine Installation Overview",
        "url": "https://docs.docker.com/engine/install/",
        "sha256": "36e1ce9d39b321f0e0b6d0d76954603962ebe2b680588189aa70af39f42836b4"
      },
      {
        "name": "Docker Get Started",
        "url": "https://docs.docker.com/get-started/get-docker/",
        "sha256": "3a5dec2b08386b320c130f244398b1e60c144feb681477da5185d9a17f153230"
      }
    ]
  }
}

Fuentes Verificadas

  1. Docker Official Documentation - Get Docker: https://docs.docker.com/get-started/get-docker/
    SHA256: 3a5dec2b08386b320c130f244398b1e60c144feb681477da5185d9a17f153230
  2. Docker Official Documentation - Engine Install: https://docs.docker.com/engine/install/
    SHA256: 36e1ce9d39b321f0e0b6d0d76954603962ebe2b680588189aa70af39f42836b4
  3. Docker Official Documentation - Ubuntu Install: https://docs.docker.com/engine/install/ubuntu/
    SHA256: 8047aa3eec92499126d7aaa7858c5b9ae5c47a6a6b06e0b61b8b4063d56a7628
  4. Docker Official Documentation - Desktop Linux Install: https://docs.docker.com/desktop/setup/install/linux/
    SHA256: 758e4565b261990283e3da4454c24d220570a7e9fe44d1ec9324a3c994d234a1
  5. Docker Official Documentation - Desktop Ubuntu Install: https://docs.docker.com/desktop/setup/install/linux/ubuntu/
    SHA256: d25fa42ed1da98b763b23403838067acef3f9a5b96e71e2e08a42112ea52dc77

Última actualización: 2024-12-19 | Fuente oficial: Docker Inc.

Fuentes verificadas

Fuente 1 ↗Fuente 2 ↗Fuente 3 ↗Fuente 4 ↗Fuente 5 ↗