Manual de Instalación de Docker en Ubuntu
Introducción
Docker es una plataforma de código abierto que permite empaquetar, distribuir y ejecutar aplicaciones dentro de contenedores aislados. Este manual te guiará paso a paso en la instalación de Docker Engine en Ubuntu utilizando los repositorios oficiales de Docker.
Ventajas de usar los repositorios oficiales:
- ✅ Versiones más actualizadas de Docker
- ✅ Actualizaciones de seguridad más rápidas
- ✅ Acceso a las últimas características
- ✅ Soporte oficial de Docker Inc.
Requisitos Previos
Antes de comenzar, asegúrate de tener:
- Sistema Operativo: Ubuntu 20.04 LTS, 22.04 LTS, 24.04 LTS o superior
- Arquitectura: x86_64/amd64, armhf, arm64, o s390x
- Privilegios: Acceso sudo o root
- Conexión a Internet: Para descargar paquetes
Versiones de Ubuntu soportadas:
| Versión | Nombre en Código | Estado |
|---|---|---|
| 24.04 LTS | Noble Numbat | ✅ Soportado |
| 22.04 LTS | Jammy Jellyfish | ✅ Soportado |
| 20.04 LTS | Focal Fossa | ✅ Soportado |
Verificación del Sistema
Antes de instalar Docker, verifica la información de tu sistema:
# Verificar versión de Ubuntu
lsb_release -a
# Verificar nombre en código
lsb_release -cs
# Verificar arquitectura del sistema
dpkg --print-architecture
# Verificar versión del kernel
uname -rSalida esperada:
Distributor ID: Ubuntu
Description: Ubuntu 24.04 LTS
Release: 24.04
Codename: nobleDesinstalación de Versiones Antiguas
Es importante eliminar versiones anteriores de Docker para evitar conflictos.
Paso 1: Eliminar paquetes conflictivos
# Eliminar versiones antiguas de Docker
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do
sudo apt-get remove $pkg
donePaso 2: Limpieza completa (opcional)
⚠️ ADVERTENCIA: Esto eliminará todos los contenedores, imágenes y volúmenes existentes.
# Eliminar directorios de Docker
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerdInstalación de Docker
Paso 1: Actualizar el índice de paquetes
sudo apt-get updatePaso 2: Instalar dependencias necesarias
sudo apt-get install -y \
ca-certificates \
curl \
gnupg \
lsb-releaseDescripción de paquetes:
ca-certificates: Certificados de autoridades de certificacióncurl: Herramienta para transferir datos con URLsgnupg: Herramienta de cifrado y firmaslsb-release: Información sobre la distribución Linux
Paso 3: Crear directorio para las claves GPG
sudo install -m 0755 -d /etc/apt/keyringsPaso 4: Descargar e instalar la clave GPG oficial de Docker
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¿Qué es la clave GPG? La clave GPG (GNU Privacy Guard) se usa para verificar la autenticidad de los paquetes de Docker, garantizando que provienen de una fuente confiable.
Paso 5: Añadir el repositorio oficial de Docker
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/nullDesglose del comando:
arch=$(dpkg --print-architecture): Detecta automáticamente la arquitecturasigned-by=/etc/apt/keyrings/docker.asc: Especifica la clave GPG$(. /etc/os-release && echo "$VERSION_CODENAME"): Detecta el nombre en código de Ubuntustable: Usa el canal estable de Docker
Paso 6: Actualizar el índice de paquetes nuevamente
sudo apt-get updatePaso 7: Instalar Docker Engine y componentes
sudo apt-get install -y \
docker-ce \
docker-ce-cli \
containerd.io \
docker-buildx-plugin \
docker-compose-pluginComponentes instalados:
docker-ce: Docker Community Edition (motor principal)docker-ce-cli: Interfaz de línea de comandos de Dockercontainerd.io: Runtime de contenedoresdocker-buildx-plugin: Plugin para construcción avanzada de imágenesdocker-compose-plugin: Plugin de Docker Compose v2
Configuración Post-Instalación
Verificar que Docker se inició correctamente
sudo systemctl status dockerSalida esperada:
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled)
Active: active (running) since Sat 2026-01-17 10:30:25 UTCHabilitar Docker para que inicie con el sistema
sudo systemctl enable docker
sudo systemctl enable containerdAñadir usuario actual al grupo docker (recomendado)
Esto permite ejecutar comandos de Docker sin sudo:
# Añadir tu usuario al grupo docker
sudo usermod -aG docker $USER⚠️ IMPORTANTE: Debes cerrar sesión y volver a iniciarla para que los cambios surtan efecto.
Alternativa sin cerrar sesión:
newgrp dockerO ejecutar:
su - ${USER}Verificar que el usuario fue añadido
# Ver grupos del usuario
groups
# O específicamente verificar docker
id -nG | grep dockerVerificación de la Instalación
Paso 1: Verificar versión de Docker
docker --versionSalida esperada:
Docker version 27.5.1, build 1234abcPaso 2: Verificar información detallada del sistema
docker versionSalida esperada:
Client: Docker Engine - Community
Version: 27.5.1
API version: 1.47
Go version: go1.22.5
Git commit: 1234abc
Built: Thu Jan 16 10:30:00 2025
OS/Arch: linux/amd64
Server: Docker Engine - Community
Engine:
Version: 27.5.1
API version: 1.47 (minimum version 1.24)
Go version: go1.22.5Paso 3: Ejecutar contenedor de prueba
docker run hello-worldSalida esperada:
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
...
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.Paso 4: Verificar Docker Compose
docker compose versionSalida esperada:
Docker Compose version v2.24.1Paso 5: Ver información completa del sistema
docker infoEsto muestra información detallada sobre:
- Número de contenedores
- Número de imágenes
- Versión del kernel
- Sistema operativo
- Configuración de storage
- Plugins instalados
Comandos Útiles
Gestión de contenedores
# Listar contenedores en ejecución
docker ps
# Listar todos los contenedores (incluidos los detenidos)
docker ps -a
# Iniciar un contenedor
docker start <nombre_o_id>
# Detener un contenedor
docker stop <nombre_o_id>
# Reiniciar un contenedor
docker restart <nombre_o_id>
# Eliminar un contenedor
docker rm <nombre_o_id>
# Eliminar todos los contenedores detenidos
docker container pruneGestión de imágenes
# Listar imágenes
docker images
# Buscar imágenes en Docker Hub
docker search ubuntu
# Descargar una imagen
docker pull ubuntu:22.04
# Eliminar una imagen
docker rmi <nombre_o_id>
# Eliminar imágenes no utilizadas
docker image pruneInformación del sistema
# Ver uso de espacio
docker system df
# Ver estadísticas de recursos en tiempo real
docker stats
# Ver logs de un contenedor
docker logs <nombre_o_id>
# Ver logs en tiempo real
docker logs -f <nombre_o_id>Limpieza del sistema
# Limpiar todo (contenedores, redes, imágenes no usadas)
docker system prune
# Limpiar incluyendo volúmenes
docker system prune --volumes
# Limpiar todo (incluyendo imágenes en uso)
docker system prune -a --volumesSolución de Problemas
Problema 1: Error de permisos al ejecutar docker
Error:
permission denied while trying to connect to the Docker daemon socketSolución:
# Verificar que estás en el grupo docker
groups
# Si no estás, añadirte al grupo
sudo usermod -aG docker $USER
# Cerrar sesión y volver a iniciar, o ejecutar:
newgrp dockerProblema 2: Docker no inicia después de la instalación
Solución:
# Ver estado del servicio
sudo systemctl status docker
# Iniciar el servicio
sudo systemctl start docker
# Ver logs para diagnóstico
sudo journalctl -u docker.service -n 50 --no-pagerProblema 3: El repositorio de Docker no se encuentra
Error:
E: The repository 'https://download.docker.com/linux/ubuntu noble Release' does not have a Release file.Solución:
# Verificar que usaste el nombre en código correcto
lsb_release -cs
# Eliminar y volver a añadir el repositorio
sudo rm /etc/apt/sources.list.d/docker.list
# Repetir los pasos 4 y 5 de la instalaciónProblema 4: Conflicto de puertos
Error:
Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in useSolución:
# Ver qué proceso está usando el puerto
sudo netstat -tlnp | grep :80
# O usar ss
sudo ss -tlnp | grep :80
# Detener el servicio conflictivo o usar otro puerto
docker run -p 8080:80 nginxProblema 5: Espacio en disco insuficiente
Solución:
# Ver uso de espacio de Docker
docker system df
# Limpiar recursos no utilizados
docker system prune -a
# Ver qué consume más espacio
du -sh /var/lib/docker/*Instalación de Versión Específica de Docker
Si necesitas instalar una versión específica de Docker:
Paso 1: Listar versiones disponibles
apt-cache madison docker-ceSalida:
docker-ce | 5:27.5.1-1~ubuntu.24.04~noble | https://download.docker.com/linux/ubuntu noble/stable amd64 Packages
docker-ce | 5:27.5.0-1~ubuntu.24.04~noble | https://download.docker.com/linux/ubuntu noble/stable amd64 Packages
docker-ce | 5:27.4.1-1~ubuntu.24.04~noble | https://download.docker.com/linux/ubuntu noble/stable amd64 PackagesPaso 2: Instalar versión específica
# Formato: VERSION_STRING=5:VERSION-1~ubuntu.CODENAME~ARCHITECTURE
VERSION_STRING=5:27.5.0-1~ubuntu.24.04~noble
sudo apt-get install -y \
docker-ce=$VERSION_STRING \
docker-ce-cli=$VERSION_STRING \
containerd.io \
docker-buildx-plugin \
docker-compose-pluginPaso 3: Evitar actualizaciones automáticas (opcional)
sudo apt-mark hold docker-ce docker-ce-cliPara permitir actualizaciones nuevamente:
sudo apt-mark unhold docker-ce docker-ce-cliDesinstalación de Docker
Desinstalación completa
# Paso 1: Desinstalar paquetes de Docker
sudo apt-get purge -y \
docker-ce \
docker-ce-cli \
containerd.io \
docker-buildx-plugin \
docker-compose-plugin
# Paso 2: Eliminar directorios de datos
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
# Paso 3: Eliminar el repositorio de Docker
sudo rm /etc/apt/sources.list.d/docker.list
sudo rm /etc/apt/keyrings/docker.asc
# Paso 4: Eliminar el grupo docker
sudo groupdel docker
# Paso 5: Actualizar repositorios
sudo apt-get updateRecursos Adicionales
Documentación oficial
- Documentación de Docker: https://docs.docker.com/
- Docker Hub: https://hub.docker.com/
- Docker Compose: https://docs.docker.com/compose/
- Referencia de Dockerfile: https://docs.docker.com/reference/dockerfile/
Comunidad
- Foros de Docker: https://forums.docker.com/
- Docker en GitHub: https://github.com/docker
- Stack Overflow: Tag [docker]
Cursos y tutoriales
- Docker Getting Started: https://docs.docker.com/get-started/
- Play with Docker: https://labs.play-with-docker.com/
- Docker Curriculum: https://docker-curriculum.com/
Comandos de Referencia Rápida
# INSTALACIÓN
sudo apt-get update
sudo apt-get 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
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-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# POST-INSTALACIÓN
sudo usermod -aG docker $USER
sudo systemctl enable docker
# VERIFICACIÓN
docker --version
docker run hello-world
docker compose versionNotas de Seguridad
Mejores prácticas
- No ejecutar contenedores como root cuando sea posible
- Usar imágenes oficiales verificadas de Docker Hub
- Mantener Docker actualizado regularmente
- Escanear imágenes en busca de vulnerabilidades
- Limitar recursos de contenedores (CPU, memoria)
- Usar redes privadas para contenedores
- No exponer el socket de Docker innecesariamente
Actualizar Docker
# Actualizar todos los paquetes
sudo apt-get update
sudo apt-get upgrade docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginConclusión
Has completado exitosamente la instalación de Docker en Ubuntu usando los repositorios oficiales. Ahora estás listo para:
- ✅ Crear y ejecutar contenedores
- ✅ Construir imágenes personalizadas
- ✅ Usar Docker Compose para aplicaciones multi-contenedor
- ✅ Implementar soluciones de microservicios
- ✅ Desarrollar aplicaciones en entornos consistentes
¡Feliz containerización! 🐳
Documento creado: Enero 2026
Versión: 1.0
Basado en: Documentación oficial de Docker
Compatible con: Ubuntu 20.04, 22.04, 24.04 LTS
