Fino a questo punto abbiamo utilizzato le immagini fornite dal docker hub. Ora è il momento di iniziare a costruire le nostre.

Uno dei casi d’uso più comuni quando si parla di Docker è adattare un software già esistente all’architettura a container. Questo procedimento si dice “containerizing” o “dockerizing” an application e per farlo vanno costruite delle immagini ad-hoc.

Creare immagini

Per iniziare a creare un immagine abbiamo bisogno di creare un file particolare. Questo file si chiama “Dockerfile” e va salvato così, senza estensione.

Pensiamo al Dockerfile come un manuale di assemblaggio per le immagini.

Il suo scopo però non si esaurisce qui. Oltre a specificare come deve essere costruita un’immagine, descrive anche la modalità (di default) con la quale verrà avviato un container a partire da essa.

Le istruzioni dichiarate nel Dockerfile verranno eseguite in ordine e, in buona approssimazione, per ognuna di esse verrà generato un layer.

Durante il processo di build, verrà eseguita una ricerca del Dockerfile a partire dalla root del progetto (che solitamente è la cartella da cui si lancia il comando di build). È comunque possibile specificare un percorso diverso utilizzando il flag -f nel comando di build.

Non abbiamo ancora affrontato una build, ma ne parleremo tra poco. Per ora poniamo l’attenzione sul Dockerfile.

Nel prossimo post affronteremo le istruzioni che compongono il Dockerfile.

Mi sono posto come obiettivo quello di affrontare tutte le istruzioni più rilevanti, tuttavia lascio un link alla documentazione(https://docs.docker.com/engine/reference/builder/) per qualunque approfondimento o necessità diversa da quanto trattato.

Piccola nota a margine per chi conosce i design pattern. Osserviamo il link. Non leggiamo reference/Dockerfile ma reference/builder.
Vi ricorda niente?


Prosegui su: Dockerfile

Immagine: Acqua foto creata da freepik – it.freepik.com

 

Dockertutorial.it ha bisogno di te!

Il progetto è completamente autofinanziato.

Gratis, per tutti.

 

Vuoi dare una mano a questo progetto?