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
- Nel Pannello Saplo, vai su Catalogo delle applicazioni e seleziona Docker Registry.
- 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.
- 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,
registrydall'immagine ufficialeregistry:2eregistry-uidall'immaginejoxit/docker-registry-ui, e attende che l'interfaccia utente risponda effettivamente via HTTP prima di considerare l'installazione completata. - L'interfaccia utente agisce come un reverse proxy per l'API del registro sulla stessa porta e Dominio, quindi
docker login,docker pushedocker pullfunzionano direttamente all'indirizzo dell'applicazione, senza porte aggiuntive e senza configurazione CORS. - Le credenziali di accesso dell'amministratore (login, password) vengono salvate nel file
DOCKER-REGISTRY-SETUP.txtnella directory dell'applicazione.
Primo utilizzo
- Recupera il nome utente e la password dal file
DOCKER-REGISTRY-SETUP.txtnella directory dell'applicazione (il nome utente predefinito èadmin, la password è stata generata casualmente durante l'installazione). - Accedi dal tuo Docker locale con il comando
docker login tuo-dominio.saploapp.ple inserisci il nome utente e la password dal file. - 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 comandodocker push. - 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.
- 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
