El plan gratuito de Docker Hub ofrece un repositorio privado y límites de descarga de imágenes, mientras que cualquier imagen adicional o un límite de tasa de extracción más alto ya implica un plan Pro o Team de pago, que se calcula por usuario al mes. Docker Registry en Saplo es tu propio almacenamiento privado de imágenes Docker construidas bajo tu dominio, con una interfaz de navegador sencilla para explorar repositorios, etiquetas y capas, sin límite de repositorios ni de descargas. A continuación, te mostramos paso a paso cómo configurar Docker Registry en Saplo.
Por qué un registro propio en lugar de Docker Hub
Docker Hub es conveniente para empezar, pero tiene dos puntos débiles que un registro propio elimina:
- El plan gratuito de Docker Hub solo ofrece un repositorio privado, cada imagen privada adicional requiere un plan Pro (desde aproximadamente 5 USD al mes) o Team (desde aproximadamente 9 USD al mes por usuario), si más personas trabajan en el proyecto.
- Los límites de pull rate restringen cuántas veces al día el pipeline CI/CD o el servidor de producción puede descargar una imagen, lo que, con despliegues frecuentes y muchas instancias de la misma aplicación, puede bloquear una implementación en el peor momento.
- Las imágenes construidas en el CI/CD de la empresa y almacenadas en la nube pública de terceros son datos fuera de tu control, incluso si el repositorio está marcado como privado.
Docker Registry en Saplo es la imagen oficial registry:2 (Docker Distribution) junto con una interfaz de usuario basada en navegador, ambas en un solo contenedor Docker en tu Box. Nadie cuenta los repositorios ni las descargas, y el coste total es el coste del propio Box, independientemente de cuántas imágenes tenga tu pipeline o cuántas veces al día las descargue.
Requisitos
Para configurar Docker Registry en Saplo, necesitas:
- Un Box con Docker en ejecución (el motor lo habilita automáticamente al instalar desde el catálogo, se requiere anidamiento en el contenedor, lo cual Saplo tiene por defecto).
- Un mínimo de 512 MB de RAM libre en el Box y 10 GB de espacio en disco para las imágenes. El plan más económico que soporta esto es el Box S por 27 € al año.
- Un Dominio o subdominio *.saploapp.pl, incluido en el precio de cualquier plan, donde se alojará el registro y la interfaz de usuario.
- NO necesitas una base de datos separada; el registro almacena las imágenes construidas en el volumen de datos de la aplicación, no en una base de datos SQL.
Encontrarás la descripción completa de la aplicación y su ubicación en el catálogo en la página de Docker Registry en Saplo.
Instalación paso a paso
- En el panel de Saplo, ve a Catálogo de aplicaciones y selecciona Docker Registry.
- Indica un Box con un mínimo de 512 MB de RAM y 10 GB de espacio libre en disco, además de un dominio o subdominio donde se instalará el registro.
- Confirma la instalación. El motor genera una contraseña de administrador aleatoria, la guarda como hash bcrypt (el único formato que admite el registro de Docker en modo de autorización htpasswd), instala dos contenedores,
registryde la imagen oficialregistry:2yregistry-uide la imagenjoxit/docker-registry-ui, y espera hasta que la interfaz de usuario responda realmente por HTTP antes de considerar la instalación como completada. - La interfaz de usuario funciona como un proxy inverso para la API del registro bajo el mismo puerto y dominio, por lo que
docker login,docker pushydocker pullfuncionan directamente bajo la dirección de la aplicación, sin puertos adicionales y sin configuración CORS. - Las credenciales de administrador (usuario, contraseña) se guardan en el archivo
DOCKER-REGISTRY-SETUP.txten el directorio de la aplicación.
Primer uso
- Lee el usuario y la contraseña del archivo
DOCKER-REGISTRY-SETUP.txten el directorio de la aplicación (el usuario por defecto esadmin, la contraseña se genera aleatoriamente durante la instalación). - Inicia sesión desde tu Docker local con el comando
docker login tu-dominio.saploapp.ple introduce el usuario y la contraseña del archivo. - Etiqueta la imagen en la dirección del registro, por ejemplo
docker tag my-image:latest tu-dominio.saploapp.pl/my-image:latest, y súbela con el comandodocker push. - Accede a la dirección de tu dominio en el navegador, inicia sesión con el mismo usuario y contraseña, y navega por los repositorios, etiquetas y capas en la interfaz de usuario de joxit/docker-registry-ui.
- En el servidor de producción o en el pipeline de CI/CD, descarga la imagen con el comando
docker pull tu-dominio.saploapp.pl/my-image:latest, después de iniciar sesión con la misma cuenta.
Docker Registry en Saplo vs. Docker Hub
| Docker Hub Free | Docker Hub Pro/Team | Docker Registry en Saplo | |
|---|---|---|---|
| Límite de repositorios privados | uno | sin límite | sin límite |
| Límite de tasa de pull | sí, para cuentas anónimas y gratuitas | más alto, pero aún contabilizado | ninguno |
| Dónde se almacenan las imágenes | en los servidores de Docker Inc | en los servidores de Docker Inc | en tu Box |
| Costo | 0 USD, pero con límites | desde unos 5 USD al mes por usuario | el costo del Box (desde 27 € al año) |
Preguntas frecuentes
¿Tengo que crear una cuenta en Docker Hub o en otro registro público?
No, Docker Registry en Saplo funciona de forma completamente independiente. La autenticación en docker login se realiza con el nombre de usuario y la contraseña generados durante la instalación, sin necesidad de una cuenta con un proveedor externo.
¿Hay un límite en el número de imágenes o descargas? No, la única limitación es el espacio en disco del Box que adquieres con tu plan.
¿Se puede cambiar la contraseña de administrador?
Sí, puedes generar un nuevo hash bcrypt con el contenedor efímero httpd:2.4-alpine (docker run --rm httpd:2.4-alpine htpasswd -Bbn user password), reemplazar el archivo htpasswd en el directorio de la aplicación y reiniciar el contenedor del registro.
¿El registro requiere una base de datos separada? No, las imágenes y sus metadatos se almacenan en el volumen de datos del contenedor del registro, sin necesidad de una base de datos MySQL o Postgres separada.
¿Se pueden eliminar imágenes y etiquetas antiguas?
Sí, la eliminación de imágenes está habilitada (REGISTRY_STORAGE_DELETE_ENABLED) y disponible directamente desde la interfaz de usuario en el navegador, sin necesidad de acceder por SSH.
Si actualmente pagas por Docker Hub Pro o Team solo para tener más de un repositorio privado, escríbenos. Te ayudaremos a configurar tu propio registro.
- #CI/CD
- #DevOps
- #Docker
- #Guía
