IT
Accedi Crea un account

Come installare Docker Registry su Saplo (registro immagini privato senza i limiti di Docker Hub)

Il tuo registro privato di immagini Docker sotto il tuo dominio, con un'interfaccia utente basata su browser per repository, tag e livelli, senza un account Docker Hub e senza limiti di pull rate. Istruzioni passo-passo su come installare Docker Registry su Saplo.

Grzegorz Kalmus ·

Docker Hub nel piano gratuito offre un singolo repository privato e limiti di download delle immagini. Ogni immagine aggiuntiva o un limite di pull rate più elevato richiede un piano Pro o Team a pagamento, calcolato per utente al mese. Docker Registry su Saplo è il tuo archivio privato di immagini Docker, costruito sotto il tuo dominio, con una semplice interfaccia browser per la navigazione di repository, tag e livelli, senza limiti di repository e senza limiti di download. Di seguito trovi una guida passo passo su come configurare Docker Registry su Saplo.

Perché un registro privato invece di Docker Hub?

Docker Hub è comodo per iniziare, ma ha due punti deboli che un registro privato elimina:

  • Il piano gratuito di Docker Hub offre un solo repository privato, ogni immagine privata aggiuntiva richiede un piano Pro a pagamento (a partire da circa 5 USD al mese) o un piano Team (a partire da circa 9 USD al mese per utente) se più persone lavorano al progetto.
  • I limiti di pull rate limitano quante volte al giorno una pipeline CI/CD o un server di produzione può scaricare un'immagine, il che, con distribuzioni frequenti e molte istanze della stessa applicazione, può bloccare l'implementazione nel momento peggiore.
  • Le immagini create in un CI/CD aziendale e conservate in un cloud pubblico di terze parti sono dati al di fuori del tuo controllo, anche se il repository è contrassegnato come privato.

Docker Registry su Saplo è l'immagine ufficiale registry:2 (Docker Distribution) con un'interfaccia utente basata su browser, entrambi in un unico contenitore Docker sul tuo Box. Nessuno conta i repository e i download, e il costo totale è il costo del Box stesso, indipendentemente da quante immagini e quante volte al giorno la tua pipeline le scarica.

Requisiti

Per creare un Docker Registry su Saplo, hai bisogno di:

  • Un Box con Docker in esecuzione (il motore lo abilita automaticamente all'installazione dal catalogo, è richiesto il nesting nel contenitore, che Saplo ha di default),
  • Un minimo di 512 MB di RAM liberi sul Box e 10 GB di spazio su disco per le immagini, il piano più economico che può supportarlo è Box S a 27 € all'anno,
  • Un Dominio o sottodominio *.saploapp.pl, incluso nel prezzo di ogni piano, dove verranno ospitati il registro e l'interfaccia utente (UI),
  • NON hai bisogno di un database separato, il registro memorizza le immagini create nel volume dei dati dell'applicazione, non in un database SQL.

La descrizione completa dell'applicazione e la sua posizione nel catalogo sono disponibili sulla pagina di Docker Registry su Saplo.

Installazione passo dopo passo

  1. Nel Pannello Saplo, vai su Catalogo delle applicazioni e seleziona Docker Registry.
  2. Scegli un Box con almeno 512 MB di RAM e 10 GB di spazio su disco liberi, e un Dominio o sottodominio dove verrà installato il registro.
  3. Conferma l'installazione. Il motore genera una password amministratore casuale, la salva come hash bcrypt (l'unico formato supportato dal registro Docker in modalità di autorizzazione htpasswd), avvia due container, registry dall'immagine ufficiale registry:2 e registry-ui dall'immagine joxit/docker-registry-ui, e attende che l'interfaccia utente risponda effettivamente via HTTP prima di considerare l'installazione completata.
  4. L'interfaccia utente agisce come un reverse proxy per l'API del registro sulla stessa porta e Dominio, quindi docker login, docker push e docker pull funzionano direttamente all'indirizzo dell'applicazione, senza porte aggiuntive e senza configurazione CORS.
  5. Le credenziali di accesso dell'amministratore (login, password) vengono salvate nel file DOCKER-REGISTRY-SETUP.txt nella directory dell'applicazione.

Primo utilizzo

  1. Recupera il nome utente e la password dal file DOCKER-REGISTRY-SETUP.txt nella directory dell'applicazione (il nome utente predefinito è admin, la password è stata generata casualmente durante l'installazione).
  2. Accedi dal tuo Docker locale con il comando docker login tuo-dominio.saploapp.pl e inserisci il nome utente e la password dal file.
  3. Tagga l'immagine all'indirizzo del registro, ad esempio docker tag my-image:latest tuo-dominio.saploapp.pl/my-image:latest, e caricala con il comando docker push.
  4. Visita l'indirizzo del dominio nel tuo browser, accedi con lo stesso nome utente e password e sfoglia i repository, i tag e i layer nell'interfaccia utente di joxit/docker-registry-ui.
  5. Sul server di produzione o nella pipeline CI/CD, scarica l'immagine con il comando docker pull tuo-dominio.saploapp.pl/my-image:latest, dopo aver effettuato l'accesso con lo stesso account.

Docker Registry su Saplo vs. Docker Hub

Docker Hub Free Docker Hub Pro/Team Docker Registry su Saplo
Limite repository privati uno nessun limite nessun limite
Limite di pull rate sì, per account anonimi e gratuiti più alto, ma comunque conteggiato nessuno
Dove risiedono le immagini sui server di Docker Inc sui server di Docker Inc sul tuo Box
Costo 0 USD, ma con limiti da circa 5 USD al mese per utente il costo del Box stesso (da 27 € all'anno)

Domande frequenti

Devo creare un account Docker Hub o un altro registro pubblico? No, il Docker Registry su Saplo funziona in modo completamente indipendente, l'accesso a docker login avviene tramite login e password generati durante l'installazione, senza un account di un fornitore esterno.

C'è un limite al numero di immagini o download? No, l'unica limitazione è lo spazio su disco del Box, che acquisti con il tuo piano.

È possibile cambiare la password dell'amministratore? Sì, puoi generare un nuovo hash bcrypt con un container usa e getta httpd:2.4-alpine (docker run --rm httpd:2.4-alpine htpasswd -Bbn user password), sostituire il file htpasswd nella directory dell'applicazione e riavviare il container del registro.

Il registro richiede un database separato? No, le immagini e i loro metadati sono conservati nel volume di dati del container del registro, senza la necessità di un database MySQL o Postgres separato.

È possibile eliminare immagini e tag vecchi? Sì, l'eliminazione delle immagini è abilitata (REGISTRY_STORAGE_DELETE_ENABLED) e disponibile direttamente dall'interfaccia utente nel browser, senza accedere tramite SSH.

Se oggi paghi per Docker Hub Pro o Team solo per avere più di un repository privato, scrivici, ti aiuteremo a configurare il tuo registro.

  • #CI/CD
  • #DevOps
  • #Docker
  • #Guida