Build di un’immagine NGINX con Dockerfile – Ultima Parte

Precedentemente abbiamo visto come scrivere un Dockerfile per la creazione di un’immagine custom. Abbiamo anche visto come buildare l’immagine. Ora non ci resta che salvare l’immagine in un registry. In questo articolo vedremo come effettivamente fare il push dell’immagine all’interno di un registry privato.

Pushare un'immagine in un registry privato

Il registry

Una volta creato il nostro Dockerfile è conveniente spostarlo in una nuova directory

Un registry è un servizio che consente di archiviare e distribuire immagini di container. Esistono due macro-tipologie di registry:

  • Pubblico: come per esempio Docker Hub in cui si può fare il pull delle immagini senza necessariamente autenticarsi, per quanto riguarda il push invece dipende dalla specifica configurazione del registry, infatti in alcuni registry sono necessarie le credenziali
  • Privato: in questo caso sia per il push che per il pull è necessario autenticarsi. Possiamo sicuramente citare Docker Trusted Registry, Amazon Elastic Container Registry o Harbor

Attualmente abbiamo semplicemente la nostra immagine pronta all’uso:

immagine pronta alluso

Possiamo semplicemente tralasciare la cartella creata per effettuare il build dell’immagine. Faremo il push dell’immagine creata su un registry privato creato su Harbor.

Harbor

Come è possibile vedere il registry ha un “Access Level” “Private” e attualmente è vuoto. Attualmente se dovessimo provare a fare un push verso questo registry non otterremmo altro se non un semplice errore.

unauthorized 1

Infatti nonostante abbiamo taggato l’immagine con il nome del registry privato…

				
					1. r.deso.tech/antonello/nginx:ubuntu
				
			

…abbiamo ottenuto l’errore proprio perché di default non abbiamo eseguito il login su quel registry.

Per autenticarci basta usare il seguente comando e, successivamente, inserire la password:

				
					1. docker login r.deso.tech/antonello
				
			
password

Push dell’immagine su un registry privato

Per fare il push è possibile usare il seguente comando:

				
					1. docker login r.deso.tech/antonello
				
			

Attualmente l’immagine di cui desideriamo fare il push è r.deso.tech/antonello/nginx:ubuntu

Una volta dato il comando non ci resta che premere invio e avremo una schermata con barre di progresso

push

Ultimato il tutto ci si presenterà una schermata con un semplice recap.

semplice recap

A questo punto abbiamo correttamente fatto il push dell’immagine all’interno del registry. Anche sull’interfaccia web del registry possiamo vedere che il tutto funziona correttamente.

Harbor 2

Pull dell’immagine

Analogamente, una volta fatto il login, non avremo alcun problema nell’effettuare il classico pull dell’immagine.

				
					1. docker pull r.deso.tech/antonello/nginx:ubuntu 
				
			
pull dellimmagine

Logout

Possiamo ovviamente eseguire anche il logout semplicemente usando il seguente comando:

				
					1. docker logout r.deso.tech
				
			
logout

Se volete approfondire l’argomento, sfogliate i nostri cataloghi di corsi su Docker, Kubernetes e le altre tecnologie correlate!