Cómo Instalar Docker en CentOS: Guía Completa Paso a Paso
Docker ha cambiado fundamentalmente la forma en que los desarrolladores construyen, envían y ejecutan aplicaciones. Al empaquetar software en contenedores ligeros y portátiles, Docker elimina el clásico problema de “funciona en mi máquina” y simplifica drásticamente tanto los flujos de trabajo de desarrollo como los despliegues en producción. Si estás ejecutando CentOS y deseas aprovechar el poder de la containerización, esta guía completa te guía a través de cada paso — desde una actualización del sistema nuevo hasta la configuración avanzada.
Ya sea que estés desplegando una única aplicación web u orquestando entornos complejos de múltiples contenedores, instalar Docker correctamente en CentOS es el primer paso crítico.
Requisitos previos
Antes de comenzar, asegúrate de tener:
- Un servidor CentOS 7 o CentOS 8 (físico o virtual)
- Una cuenta de usuario con privilegios
sudo - Una conexión a Internet estable
- Familiaridad básica con la línea de comandos de Linux
> Consejo profesional: Para la mejor experiencia con Docker, considera ejecutarlo en un plan de VPS Hosting. Un servidor privado virtual te proporciona acceso root completo, recursos dedicados y la flexibilidad para ejecutar contenedores sin las restricciones de entornos compartidos.
Paso 1: Actualizar el sistema
Antes de instalar cualquier software nuevo, siempre actualiza los paquetes existentes para garantizar compatibilidad y seguridad. Ejecuta el siguiente comando:
sudo yum update -yEste comando actualiza todos los paquetes instalados a sus versiones más recientes. Puede tomar algunos minutos dependiendo de cuántas actualizaciones estén pendientes. Un sistema completamente actualizado reduce el riesgo de conflictos de dependencias durante la instalación de Docker.
Paso 2: Instalar dependencias requeridas
Docker depende de varios paquetes a nivel del sistema para funcionar correctamente. Instálalos con un único comando:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2Aquí está lo que hace cada paquete:
| Paquete | Propósito |
|---|---|
yum-utils | Proporciona la utilidad yum-config-manager para gestionar repositorios |
device-mapper-persistent-data | Requerido para el controlador de almacenamiento device mapper de Docker |
lvm2 | Soporte del Administrador de volúmenes lógicos para el backend de almacenamiento de Docker |
Estas dependencias garantizan que Docker pueda gestionar el almacenamiento de contenedores de manera eficiente y confiable en tu sistema CentOS.
Paso 3: Agregar el repositorio oficial de Docker
Los repositorios de paquetes predeterminados de CentOS no incluyen los últimos paquetes de Docker. Necesitas agregar el repositorio oficial de Docker para obtener la versión más actual y estable:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repoEste comando agrega el repositorio oficial de CentOS de Docker a la lista de repositorios de tu sistema. Usar la fuente oficial garantiza que recibas paquetes de Docker genuinos y actualizados directamente de Docker Inc., en lugar de versiones potencialmente desactualizadas de espejos de terceros.
Puedes verificar que el repositorio se agregó correctamente listando tus repositorios configurados:
sudo yum repolistPaso 4: Instalar Docker Engine
Con el repositorio en su lugar, instalar Docker es sencillo:
sudo yum install -y docker-ce docker-ce-cli containerd.io> Nota: Se recomienda instalar también docker-ce-cli (la interfaz de línea de comandos de Docker) y containerd.io (el tiempo de ejecución del contenedor) junto con el motor principal para una configuración completa y lista para producción.
Esto instala la Docker Community Edition (CE) — la versión gratuita y de código abierto de Docker que es perfecta tanto para cargas de trabajo de desarrollo como de producción.
Paso 5: Iniciar y habilitar el servicio Docker
Instalar Docker no lo inicia automáticamente. Necesitas iniciar el daemon de Docker y configurarlo para que se lance automáticamente al reiniciar el sistema:
sudo systemctl start docker
sudo systemctl enable dockersystemctl start docker — Inicia el servicio Docker inmediatamente
systemctl enable docker — Configura Docker para que se inicie automáticamente cada vez que el servidor se reinicia
Verificar el estado del servicio
Confirma que Docker se está ejecutando correctamente:
sudo systemctl status docker
Deberías ver una salida indicando que el servicio está activo (en ejecución). Si el estado muestra algún error, revisa los registros del sistema con journalctl -u docker para obtener detalles de solución de problemas.
Paso 6: Verificar la instalación de Docker
Ejecuta la prueba integrada de Docker para confirmar que todo funciona como se espera:
sudo docker run hello-world
Este comando hace lo siguiente:
Se comunica con el registro de Docker Hub
Descarga la imagen de prueba ligera hello-worldSi tu instalación es exitosa, verás una salida que comienza con:
Hello from Docker!
This message shows that your installation appears to be working correctly.Felicidades — Docker ahora está completamente instalado y operativo en tu servidor CentOS.
Paso 7: Configurar Docker para usuarios sin privilegios de root (Opcional pero recomendado)
Por defecto, los comandos de Docker requieren sudo (privilegios de root). Para seguridad y conveniencia en entornos de desarrollo, puedes permitir que usuarios específicos sin privilegios de root ejecuten comandos de Docker agregándolos al grupo docker.
Crear el grupo Docker
En la mayoría de los casos, este grupo se crea automáticamente durante la instalación. Si no, créalo manualmente:
sudo groupadd dockerAgregar tu usuario al grupo Docker
Reemplaza your_username con el nombre de usuario de Linux real:
sudo usermod -aG docker your_usernameAplicar los cambios
Cierra sesión e inicia sesión nuevamente para actualizar tu pertenencia al grupo. Alternativamente, activa el cambio en la sesión actual:
newgrp dockerProbar sin Sudo
docker run hello-worldSi esto se ejecuta sin sudo y sin un error de permiso, la configuración está funcionando correctamente.
> Advertencia de seguridad: El grupo docker otorga privilegios equivalentes al usuario root. Solo agrega usuarios de confianza a este grupo en entornos de producción.
Paso 8: Referencia de comandos esenciales de Docker
Una vez que Docker se está ejecutando, aquí están los comandos más importantes que usarás diariamente:
Gestión de contenedores
# List all running containers
docker ps
# List all containers (including stopped ones)
docker ps -a
# Start a stopped container
docker start container_id
# Stop a running container
docker stop container_id
# Remove a container
docker rm container_id
# Remove all stopped containers at once
docker container pruneGestión de imágenes
# List all locally stored images
docker images
# Pull an image from Docker Hub
docker pull image_name
# Pull a specific version/tag
docker pull image_name:tag
# Remove a local image
docker rmi image_name
# Remove all unused images
docker image prune -aEjecutar contenedores
# Run a container interactively
docker run -it image_name /bin/bash
# Run a container in detached (background) mode
docker run -d image_name
# Run a container with port mapping
docker run -d -p 8080:80 image_name
# Run a container with a custom name
docker run -d --name my_container image_nameVer registros y estadísticas
# View container logs
docker logs container_id
# Follow live log output
docker logs -f container_id
# View real-time resource usage
docker statsPaso 9: Confirmar que Docker se inicia al arrancar
Docker ya debería estar configurado para iniciarse al arrancar después de ejecutar systemctl enable docker. Para verificar o volver a habilitar este comportamiento:
sudo systemctl enable dockerPara deshabilitar el inicio automático (por ejemplo, en una máquina de desarrollo donde no siempre necesitas que Docker se ejecute):
sudo systemctl disable dockerPaso 10: Configuración avanzada (Opcional)
Instalar Docker Compose
Docker Compose es una herramienta esencial para definir y gestionar aplicaciones de múltiples contenedores usando un archivo de configuración YAML simple. Instala la última versión estable:
sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-composeVerifica la instalación:
docker-compose --versionCon Docker Compose, puedes definir pilas de aplicaciones completas — servidores web, bases de datos, cachés — en un único archivo docker-compose.yml e iniciarlas todas con un comando: docker-compose up -d.
Configurar el daemon de Docker
Puedes personalizar el comportamiento de Docker editando (o creando) el archivo de configuración del daemon:
sudo nano /etc/docker/daemon.jsonUn ejemplo de configuración común:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
},
"storage-driver": "overlay2",
"default-address-pools": [
{"base": "172.17.0.0/16", "size": 24}
]
}Después de editar la configuración del daemon, reinicia Docker para aplicar los cambios:
sudo systemctl restart dockerLas configuraciones comunes del daemon que puedes configurar incluyen:
- Controlador de registros y rotación — Evita que los registros de contenedores consuman todo el espacio en disco
- Controlador de almacenamiento —
overlay2es el controlador recomendado para CentOS - Configuración de DNS — Establece servidores DNS personalizados para contenedores
- Espejos de registro — Acelera las descargas de imágenes con espejos locales
Configurar reglas de firewall (CentOS 7)
Si estás ejecutando firewalld, es posible que necesites permitir el tráfico de red de Docker:
sudo firewall-cmd --zone=public --add-masquerade --permanent
sudo firewall-cmd --reloadElegir el entorno de alojamiento correcto para Docker
Ejecutar Docker en producción requiere un entorno de servidor confiable y de alto rendimiento. Aquí están las mejores opciones dependiendo de tu caso de uso:
- VPS Hosting — Ideal para la mayoría de despliegues de Docker. Acceso root completo, recursos escalables y precios rentables hacen que VPS sea la opción preferida para aplicaciones containerizadas.
- Servidores dedicados — Mejor para entornos de producción de alto tráfico o cuando necesitas máximo rendimiento de CPU, RAM y almacenamiento para ejecutar docenas de contenedores simultáneamente.
- GPU Hosting — Perfecto para cargas de trabajo de IA/ML ejecutándose dentro de contenedores Docker que requieren aceleración GPU para entrenamiento o inferencia de modelos.
- VPS con cPanel — Si necesitas Docker junto con un panel de control fácil de usar para gestionar sitios web y correo electrónico, esta combinación ofrece lo mejor de ambos mundos.
Solución de problemas comunes de Docker en CentOS
El daemon de Docker no se inicia
Verifica los registros del sistema para obtener detalles de errores:
journalctl -u docker --no-pager | tail -50Errores de permiso denegado
Si ves Got permission denied while trying to connect to the Docker daemon socket, asegúrate de que tu usuario esté en el grupo docker y de que hayas cerrado sesión e iniciado sesión nuevamente.
No se pueden descargar imágenes
Verifica que tu servidor tenga acceso a Internet saliente y que DNS se esté resolviendo correctamente:
curl -I https://registry-1.docker.ioProblemas de red de contenedores
Reinicia Docker para reinicializar los puentes de red:
sudo systemctl restart dockerConclusión
Ahora has instalado exitosamente Docker en CentOS y tienes una base sólida para trabajar con contenedores. Aquí hay un resumen rápido de lo que se cubrió:
- ✅ Actualizar el sistema e instalar dependencias
- ✅ Agregar el repositorio oficial de Docker
- ✅ Instalar Docker CE y verificar la instalación
