Cada imagen Docker necesita un lugar donde almacenarse y desde donde distribuirse. Ese lugar es el registro de imágenes, o Docker Registry. Sin un registro, las imágenes solo existen en la máquina donde se construyen y no pueden compartirse ni desplegarse en otros entornos.
El registro más conocido es Docker Hub, pero en entornos profesionales la elección del registro adecuado tiene implicaciones reales en seguridad, coste, velocidad de despliegue y control sobre la cadena de suministro del software.
Para entender el papel del registro en el ciclo completo de distribución de aplicaciones con Docker, el artículo sobre qué es Docker explica la arquitectura completa.
Qué es un Docker Registry
Un Docker Registry es un servicio que almacena y distribuye imágenes Docker. Funciona como el repositorio central del ecosistema: los desarrolladores hacen docker push para subir nuevas imágenes y docker pull para descargarlas en los entornos de despliegue.
La estructura interna de un registro se organiza en tres niveles:
- Registry: el servicio completo (Docker Hub, Amazon ECR, un registro privado).
- Repositorio: colección de imágenes relacionadas con el mismo nombre (
nginx,miapp/backend). - Tag: versión específica de una imagen dentro del repositorio (
nginx:1.25,miapp/backend:v2.1.0).
Cuando se ejecuta docker pull nginx:alpine, Docker se conecta al registry configurado (por defecto Docker Hub), busca el repositorio nginx, descarga la imagen con el tag alpine y la almacena localmente.
Tipos de Docker Registry

Docker Hub: el registro público oficial
🔴 ¿Quieres entrar de lleno al mundo DevOps & Cloud Computing? 🔴
Descubre el DevOps & Cloud Computing Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada
👉 Prueba gratis el Bootcamp en DevOps & Cloud Computing por una semanaDocker Hub es el registro público oficial mantenido por Docker, Inc. Con más de 100.000 imágenes disponibles es el punto de partida para la mayoría de los proyectos Docker.
Tiene tres tipos de imágenes:
- Imágenes oficiales: mantenidas por Docker en colaboración con los proyectos originales (Node.js, Python, PostgreSQL, Nginx, Redis). Son verificadas, actualizadas regularmente con parches de seguridad y las recomendadas como imagen base.
- Imágenes verificadas por publicadores: empresas y organizaciones verificadas que publican imágenes de sus productos (MongoDB, Elastic, Bitnami).
- Imágenes de la comunidad: publicadas por usuarios individuales. La calidad varía significativamente. Hay que revisar el número de descargas y actualizaciones antes de usarlas.
Rate limits de Docker Hub. Docker Hub aplica límites de descarga según el tipo de cuenta:
| Tipo de cuenta | Límite de pulls |
|---|---|
| Anónimo (sin autenticar) | 100 pulls / 6 horas por IP |
| Cuenta gratuita (autenticada) | 200 pulls / 6 horas |
| Docker Personal (pago) | Sin límite |
| Docker Team / Business | Sin límite |
En pipelines CI/CD con muchos builds, alcanzar estos límites es habitual. La solución más práctica en entornos de producción es autenticarse con una cuenta de pago o usar un registro privado que sirva las imágenes desde la misma infraestructura cloud que los despliegues.
Registros privados gestionados en cloud
Los grandes proveedores cloud ofrecen sus propios registros de imágenes privados, integrados con su ecosistema de servicios.
Son la opción recomendada para equipos que ya usan uno de estos proveedores porque se integran nativamente con sus herramientas de IAM, orquestación y CI/CD.
| Registro | Proveedor | Mejor para | Coste |
|---|---|---|---|
| Amazon ECR | AWS | Equipos en AWS. Integración nativa con EKS, ECS e IAM. Replicación cross-region. | Por almacenamiento y transferencia |
| Azure Container Registry | Microsoft | Equipos en Azure. Geo-replicación, ACR Tasks para build remoto. | Por nivel de servicio (Basic/Standard/Premium) |
| Google Artifact Registry | Google Cloud | Equipos en GCP. Incluye escaneo de vulnerabilidades nativo. | Por almacenamiento y transferencia |
| GitHub Container Registry | GitHub | Proyectos en GitHub con CI/CD en Actions. Gratis para repos públicos. | Gratis (público) / cuota incluida en GitHub Plans |
Registro privado autoalojado
Docker proporciona una imagen oficial llamada registry que permite desplegar un registro privado en cualquier servidor. Es la opción para equipos que necesitan control total sobre la infraestructura del registro o que operan en entornos sin acceso a proveedores cloud externos.
# Desplegar un registro privado básico en el puerto 5000
docker run -d \
-p 5000:5000 \
--name registry \
--restart always \
-v registry-data:/var/lib/registry \
registry:2
El registro queda disponible en localhost:5000. Los datos de las imágenes se persisten en el volumen registry-data.
Un registro autoalojado sin HTTPS no es aceptable en producción. Docker no permite hacer push o pull desde registros inseguros sin configuración adicional.
La forma más práctica de añadir HTTPS es con un reverse proxy como Nginx o Traefik que gestione los certificados TLS.
Comandos esenciales para trabajar con registros
| Comando | Función |
|---|---|
docker login |
Autenticarse en Docker Hub |
docker login registro.empresa.es |
Autenticarse en un registro privado |
docker pull imagen:tag |
Descargar imagen del registro |
docker push usuario/imagen:tag |
Subir imagen al registro |
docker tag imagen registro/repo:tag |
Etiquetar imagen para un registro específico |
docker search término |
Buscar imágenes en Docker Hub desde la CLI |
docker logout |
Cerrar sesión del registro |
Flujo completo: construir, etiquetar y publicar
# 1. Construir la imagen
docker build -t miapp:v1.0.0 .
# 2. Etiquetar para el registro de destino
# Docker Hub:
docker tag miapp:v1.0.0 usuario/miapp:v1.0.0
# Amazon ECR:
docker tag miapp:v1.0.0 123456789.dkr.ecr.eu-west-1.amazonaws.com/miapp:v1.0.0
# GitHub Container Registry:
docker tag miapp:v1.0.0 ghcr.io/organizacion/miapp:v1.0.0
# 3. Autenticarse
docker login # Docker Hub
# Para ECR:
aws ecr get-login-password --region eu-west-1 | \
docker login --username AWS --password-stdin \
123456789.dkr.ecr.eu-west-1.amazonaws.com
# 4. Publicar
docker push usuario/miapp:v1.0.0
Para una guía completa del proceso de distribución de imágenes incluyendo multi-stage builds y etiquetado semántico, el artículo sobre distribución de aplicaciones con Docker cubre el flujo completo de extremo a extremo.
Cómo elegir el registro adecuado
La elección del registro más adecuado depende de tres factores principales.
El proveedor cloud que usa el equipo. Si los despliegues van a AWS, ECR es la opción natural: la autenticación es automática con los roles IAM, las imágenes se descargan dentro de la red de AWS sin costes de transferencia y la integración con EKS y ECS es nativa. Lo mismo aplica para Azure con ACR y GCP con Artifact Registry.
El repositorio de código. Si el código está en GitHub y el CI/CD usa GitHub Actions, GitHub Container Registry simplifica enormemente la configuración: los tokens de autenticación están disponibles automáticamente en los workflows y no hay que gestionar credenciales adicionales.
Los requisitos de privacidad y cumplimiento. En sectores regulados como banca, seguros o sanidad, puede ser necesario que las imágenes no salgan de la infraestructura de la organización. Un registro privado autoalojado o un registro gestionado en una región específica de la UE puede ser un requisito de cumplimiento antes que una elección técnica.
Lo que hemos visto en equipos que adoptan Docker de forma madura es que empiezan con Docker Hub y pasan a registros privados cuando empiezan a tener problemas concretos: rate limits en CI/CD, imágenes con código propietario o requisitos de cumplimiento. No hay que resolver ese problema antes de que exista.
Rubén trabajaba como ingeniero de aplicaciones cuando decidió dar el salto a DevOps. Hizo el Bootcamp DevOps de KeepCoding para entender el ecosistema completo: Docker, Kubernetes y la gestión de infraestructura en cloud.
Hoy trabaja como SRE en Red Hat, donde gestionar registros de imágenes, pipelines de distribución y la seguridad de la cadena de suministro del software son parte del trabajo cotidiano. Lo que más valoró fue aprender con proyectos reales desde el primer módulo, no con teoría desconectada del mercado.
Cómo aprender Docker Registry en un contexto profesional

Entender Docker Registry a nivel superficial es sencillo: un registro almacena imágenes, Docker Hub es el más conocido.
Lo que requiere más tiempo de desarrollar es el criterio para tomar decisiones sobre la infraestructura de distribución de imágenes en proyectos reales: cuándo es necesario un registro privado, cómo configurar la autenticación de forma segura en pipelines CI/CD, cómo gestionar el etiquetado para garantizar la trazabilidad en producción y cómo integrar el registro con la cadena de despliegue completa.
Para aprender Docker Registry en el contexto de un pipeline DevOps completo, el DevOps y Cloud Computing Full Stack Bootcamp de KeepCoding cubre el recorrido completo en 6 meses.
Conclusión

Un Docker Registry es la infraestructura que hace posible la distribución de imágenes Docker entre equipos y entornos. Docker Hub es el registro de referencia para proyectos públicos y el punto de partida para la mayoría de equipos. DevOps y Cloud Computing Full Stack Bootcamp de KeepCoding.
Los registros privados gestionados de los proveedores cloud son la opción natural cuando el proyecto crece, aparecen requisitos de privacidad o los rate limits de Docker Hub se convierten en un problema en los pipelines.
La elección del registro adecuado es una decisión de infraestructura con consecuencias reales en seguridad, coste y velocidad de despliegue.
Entender las opciones disponibles y los criterios para elegir entre ellas es parte del conocimiento operativo que diferencia a un profesional DevOps de alguien que simplemente usa Docker.
La documentación oficial de Docker Registry, incluyendo la referencia de la API y la guía de configuración del registro privado, está en docs.docker.com/registry/.



