ES
Inicia sesión Crea tu cuenta

Cómo montar Docker Registry en Saplo (registro de imágenes privado sin límites de Docker Hub)

Tu propio registro privado de imágenes Docker bajo tu dominio, con interfaz de usuario en el navegador para repositorios, etiquetas y capas, sin cuenta en Docker Hub y sin límites de tasa de extracción. Guía paso a paso sobre cómo montar Docker Registry en Saplo.

Grzegorz Kalmus ·

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

  1. En el panel de Saplo, ve a Catálogo de aplicaciones y selecciona Docker Registry.
  2. 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.
  3. 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, registry de la imagen oficial registry:2 y registry-ui de la imagen joxit/docker-registry-ui, y espera hasta que la interfaz de usuario responda realmente por HTTP antes de considerar la instalación como completada.
  4. 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 push y docker pull funcionan directamente bajo la dirección de la aplicación, sin puertos adicionales y sin configuración CORS.
  5. Las credenciales de administrador (usuario, contraseña) se guardan en el archivo DOCKER-REGISTRY-SETUP.txt en el directorio de la aplicación.

Primer uso

  1. Lee el usuario y la contraseña del archivo DOCKER-REGISTRY-SETUP.txt en el directorio de la aplicación (el usuario por defecto es admin, la contraseña se genera aleatoriamente durante la instalación).
  2. Inicia sesión desde tu Docker local con el comando docker login tu-dominio.saploapp.pl e introduce el usuario y la contraseña del archivo.
  3. 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 comando docker push.
  4. 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.
  5. 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