Comprendere i Dockerfile
Impari la sintassi e le istruzioni comuni dei Dockerfile per definire come viene creata un’immagine.
Comprendere i Dockerfile è una lezione Docker & DevOps Fundamentals gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Docker & DevOps Fundamentals, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Docker & DevOps Fundamentals include 4 lezioni in totale.
Che cos'è un Dockerfile?
Immagini di avere una ricetta per preparare una torta. Un Dockerfile è molto simile! È un file di testo semplice che contiene tutte le istruzioni necessarie a Docker per creare automaticamente una Docker image.
Invece di mescolare ingredienti, si indica a Docker quale sistema operativo di base usare, quale software installare e come configurare l'applicazione all'interno dell'immagine.

Vantaggi: automazione della build
I Dockerfile offrono numerosi vantaggi al flusso di lavoro di sviluppo:
- Automazione: niente più passaggi manuali! Docker crea le immagini in modo coerente ogni volta.
- Controllo versione: i Dockerfile sono codice, quindi può monitorare le modifiche con Git.
- Riproducibilità: chiunque disponga del Dockerfile può creare esattamente la stessa immagine.
- Trasparenza: può vedere esattamente che cosa contiene un'immagine.
Struttura di base di un Dockerfile
Un Dockerfile è un elenco di istruzioni eseguite in ordine, dall'alto verso il basso. Ogni istruzione crea un nuovo layer nell'immagine.
La sintassi di base è semplice:
INSTRUCTION argumentsI commenti iniziano con #, proprio come in molti linguaggi di programmazione. Le istruzioni Docker non distinguono tra maiuscole e minuscole, ma per convenzione si scrivono in maiuscolo.
Scegliere un'immagine di base con FROM
Ogni Dockerfile deve iniziare con l'istruzione FROM. Questa specifica l'immagine di base su cui verrà creata la nuova immagine. L'immagine di base contiene generalmente un sistema operativo, come Alpine Linux, e talvolta software preinstallato.
È come scegliere il punto di partenza: una tela bianca oppure una tela con già alcuni colori di base.
FROM alpine:latestEseguire comandi con RUN
L'istruzione RUN serve a eseguire comandi durante il processo di creazione dell'immagine. È qui che si installano pacchetti, si creano directory o si compila il codice.
Ogni comando RUN crea un nuovo layer, quindi combinare i comandi con && può aiutare a ridurre le dimensioni dell'immagine.
RUN apk update && apk add gitComando predefinito con CMD
L'istruzione CMD fornisce comandi o argomenti predefiniti per un container in esecuzione. A differenza di RUN, i comandi CMD vengono eseguiti quando un container si avvia, non durante la build.
Se specifica un comando quando esegue un container, ad esempio docker run my-image ls, quel comando sostituirà l'istruzione CMD.
CMD ["echo", "Hello from container!"]Aggiungere file con COPY
L'istruzione COPY copia nuovi file o directory dalla macchina host, dove sta creando l'immagine, nel file system dell'immagine Docker, in un percorso specificato.
In genere è preferibile a ADD perché è più trasparente e copia solo file locali.
COPY ./app /usr/src/appDirectory di lavoro e variabili d'ambiente
WORKDIR imposta la directory di lavoro per tutte le istruzioni RUN, CMD, ENTRYPOINT, COPY e ADD che seguono. Rende il Dockerfile più ordinato.
ENV imposta le variabili d'ambiente. Queste variabili sono disponibili per le istruzioni successive nel Dockerfile e anche per il container in esecuzione.
WORKDIR /app
ENV PORT=8080Informare sulle porte con EXPOSE
L'istruzione EXPOSE informa Docker che il container resta in ascolto sulle porte di rete specificate durante l'esecuzione. Non pubblica effettivamente la porta.
La si può considerare documentazione. Per rendere la porta accessibile dall'esterno del container, è necessario usare il flag -p con docker run.
EXPOSE 80
EXPOSE 443Il Suo primo Dockerfile semplice
Mettiamo insieme tutti gli elementi! Ecco un Dockerfile di base che configura un'immagine Alpine Linux, installa un pacchetto e definisce un comando predefinito.
Per crearlo, salvi il file con il nome Dockerfile in una directory vuota, quindi esegua docker build -t my-simple-app . nel terminale.
FROM alpine:latest
LABEL maintainer="CoddyKit"
RUN apk update && apk add --no-cache bash
WORKDIR /app
CMD ["bash", "-c", "echo 'Hello from my custom Alpine image!' && sleep 3600"]Quiz sulle istruzioni dei Dockerfile
Verifichi le Sue conoscenze! Quali di queste istruzioni vengono eseguite durante il processo di creazione dell'immagine, modificandone direttamente il contenuto o la struttura?
Riepilogo: elementi essenziali dei Dockerfile
Ha fatto un grande passo avanti nella comprensione delle immagini Docker! Ha imparato che i Dockerfile sono file di testo con istruzioni per creare immagini e offrono vantaggi importanti, come automazione e riproducibilità.
Istruzioni principali:
FROM: definisce l'immagine di base.RUN: esegue comandi durante la build.CMD: imposta il comando predefinito per un container in esecuzione.COPY: aggiunge file dall'host all'immagine.WORKDIR,ENV,EXPOSE: configurano l'ambiente dell'immagine e del container.
Domande Frequenti
La lezione «Comprendere i Dockerfile» è gratuita?
Sì — il testo completo di «Comprendere i Dockerfile» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Docker & DevOps Fundamentals, passa a CoddyKit PRO. Il corso Docker & DevOps Fundamentals include 4 lezioni in totale.
Cosa imparerò in «Comprendere i Dockerfile»?
Impari la sintassi e le istruzioni comuni dei Dockerfile per definire come viene creata un’immagine. Eserciti Docker & DevOps Fundamentals con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Docker & DevOps Fundamentals?
Non è richiesta alcuna esperienza precedente. Docker & DevOps Fundamentals su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Comprendere i Dockerfile»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Docker & DevOps Fundamentals?
Sì. Ogni lezione Docker & DevOps Fundamentals include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Comprendere i Dockerfile
- Creazione di immagini Docker personalizzate
- Livelli e ottimizzazione delle immagini
- Build multi-stage e immagini più piccole