Come creare un package con Docker

Quando si parla di package, generalmente ci si riferisce a una parte di software o di librerie raggruppate per essere riutilizzate in scala. Un package infatti può essere ad esempio utilizzato da più applicazioni tramite l’importazione o l’estensione del package stesso.

Docker è un tool che renderà  più semplice la tua vita di developer, stiamo parlando di un progetto open source in grado di rendere automatico il deployment di applicazioni all’interno di contenitori software, in pratica una piattaforma che ti consentirà  di creare, testare e distribuire applicazioni tramite container.


Docker Package: il concetto di “immagine”

Il concetto di package si può tradurre in Docker con le immagini, o Docker image.
Una Docker image contiene di solito un set di istruzioni per la creazione dei container. I container sono istanze di software in esecuzione.
Dalla stessa immagine dovete sapere che è possibile creare più container.

Ad esempio, se volessi creare più istanze di ngnix per soddisfare diverse HTTP request, posso farlo partendo dalla stessa immagine di nginx.

Seguendo lo stesso esempio, potresti chiederti come puoi – partendo dall’immagine pubblica di ngnix – applicare una configurazione personalizzata per il tuo web server.

E’ molto semplice: devi creare un’immagine personalizzata nella quale, partendo dall’immagine base di nginx, si applicano degli step in cui si va ad aggiungere la configurazione personalizzata di nginx.

Per fare questo creiamo un nuovo progetto che chiameremo myapp. All’interno del progetto creiamo un file chiamato Dockerfile, e una cartella config con il file default.conf.

Docker package

Creiamo la nostra configurazione dentro al file config/default.conf. L’esempio contiene una configurazione fittizia, in cui si inoltrano le richieste a un server PHP.

Docker package

Adesso creiamo invece gli step di creazione della nuova immagine all’interno del Dockerfile.

Docker package

Come puoi notare, eseguiamo tre passaggi, di cui l’ultimo è sicuramente opzionale, che ha il solo scopo di mostrare il comando RUN. Iniziando dall’alto, il comando FROM indica da quale immagine si deve partire nella creazione delle nuova immagine. COPY invece ha due argomenti: il file da copiare e la sua destinazione finale all’interno dell’immagine. In questo modo copiamo la nostra configurazione personalizzata nginx nella cartella appropriata all’interno dell’immagine.
Oltre a copiare file, si possono eseguire comandi con il comando RUN. Questo è utile per automatizzare l’installazione di software aggiuntivi o altro.

Esistono molti altri comandi per il Docker file, ne puoi trovare la reference completa cliccando qui: troverai una fonte di assoluto interesse se intendi fare sul serio con Docker.


Lancio Comando Docker Build

Una volta creati i file, da terminale è sufficiente lanciare il comando docker build per creare la nuova immagine personalizzata.

Docker package

Come si vede dall’immagine, i tre step descritti nel Dockerfile vengono eseguiti in sequenza. L’argoment -t del comando docker build permette di dare un nome all’immagine. A questo punto la nostra immagine sarà  disponibile per l’utilizzo:

Docker package

Con questa mini guida adesso dovresti essere in grado autonomamente di creare un’immagine con Docker. Consulta la reference che abbiamo menzionato nel precedente paragrafo per maggiori dettagli e inizia a sperimentare!

Share: Facebook Twitter Linkedin

Comments