Come utilizzare l’OCI Container Registry per creare e conservare le proprie immagini docker

Giovanni Tuttolomondo
OCI for Dev
Published in
4 min readApr 17, 2024

Cos’è l’OCI Container Registry

L’OCI Container Registry è il servizio di OCI che semplifica l’archiviazione, la condivisione e la gestione delle immagini dei container (come le immagini Docker). Il servizio è gestitito da Oracle attraverso un’architettura di backend altamente disponibile e scalabile.

L’utilizzo principale di questo servizio è quello di conservaare le immagini dei contianer che possono essere usate all’interno del proprio ambienti di sviluppo in locale o in remoto sui servizi dedicati ai container come OCI Function, OCI Container Instance e OCI Oracle Kubernetes Engine (OKE).

Il grosso vantaggio è che questo servizio è gratuito si pagherà soltanto lo spazio occupato dalle immagini all’interno dell’object storage.

Vediamo quindi come creare un container registry per le nostre applicazioni in OCI e come caricarci sopra le nostre immagini docker.

Creazione del container registry

Il servizio OCI container registry è disponibile nel menu principale di OCI all’interno dei Developer Services:

All’interno dell’interfaccia del servizio è possibile creare il primo repository selezionando il compartment di destinazione e cliccando sul pulsante Create Repository

Sarà quindi possibile scegliere il tipo di accesso al repository (pubblico o privato) , il nome del repository e creare la risorsa cliccando su create:

Il repository creato adesso sarà disponibile dalla console del servizio:

Accediamo al repo e carichiamo la prima immagine

Tutti i repo creati avranno una directory dedicata all’interno dell’endpoint del servizio: https://<codice della reion>.ocir.io .

Ogni region OCI ha infattiun suo endpoint dedicato. Nel caso della region di Milano, utilizzata in questo esempio, l’endpoint è https://lin.ocir.io

Possiamo in generale eseguire la login al registry utilizzando il comando

docker login lin.ocir.io -u <username oci> -p password <authentication token>

Quindi per poter accedere dobbiamo recuperare la nostra username completa e l’authentication token associato al nostro utente.

La username ha il seguent formato <tenancy-namespace>/<username>

Potete recuperare il vostro <tenancy-namespace> navigando nel menu principale sotto Governance Administration >> Account Mangement >> Tenacy Details

Il namespace è riportato all’interno del tab Tenancy Information:

Per creare invece l’authentication token da usare come password bisogna andare all’interno della pagina del proprio profilo OCI

Sul menu di sinistra cliccate su Auth Tokens e cliccate poi su Generate token

Salvate il contenuto del token che avete creato in quanto non sarà possibile recuperarlo in un secondo momento.

Eseguite quindi il comando di login completo inserendo username e password

A questo punto possiamo scaricare l’immagine di un container da docker.io e caricarla sul nostro repo oci

#scaricate l'ultima versione dell'immagine di nginx
docker pull nginx:latest

#taggate l'immagine scaricata
#docker tag nginx <region-key>.ocir.io/<tenancy-namespace>/<repo-name>:<version>
docker tag nginx lin.ocir.io/XXXXXXXXXXXXXo/image-repo/nginx:latest

#eseguite il push dell'immagine sul repo
docker push lin.ocir.io/iXXXXXXXXXXXXXo/image-repo/nginx:latest

Verifichiamo dalla console OCI stessa che l’immagine è stata caricata

A questo punto non rimane che caricare tutte le altre immagini che vogliamo utilizzare e integrare il container registry con gli altri servizi applicativi OCI come OKE, OCI functions e OCI container instances.

Nel prossimo articolo vedremo proprio come configurare un cluster OKE per implementare dei deployment che usino le nostre immagini presenti all’interno del nostro container registry

DISCLAIMER: Le opinioni e i punti di vista espressi in questo post sono esclusivamente miei e non rappresentano in alcun modo le posizioni, le strategie o le opinioni dell’organizzazione per cui lavoro o con cui sono associato. Questo post è stato scritto e pubblicato a titolo personale.

--

--

Giovanni Tuttolomondo
OCI for Dev

Cloud Architect, always curious to learn and test new technologies. I’m passionate about OCI, infrastructure automation, and blockchain.