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.

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.

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

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.

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:

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!
Read related articles
Docker vs Kubernetes: vediamo in cosa differiscono
Docker e Kubernetes non sono concorrenti: operano su livelli diversi dello stesso stack. Questa guida aggiornata al 2026 spiega cosa fa oggi ciascuno strumento, il ruolo di Swarm e dei K8s leggeri, e quando usarli.
Come utilizzare Docker Compose
Docker Compose V5 spiegato per sysadmin e MSP: installazione, file compose.yaml e comandi essenziali per la gestione quotidiana dei container nel 2026.
Come funziona Docker Repository
Non è chiara la differenza tra un repository Docker e un registry Docker? Questa guida spiega come funzionano entrambi, come taggare e fare il push delle immagini e come autenticarsi in modo sicuro su Docker Hub e altri registry.