Comprensione delle build multistage Docker

Comprensione delle build multistage Docker
La build in più-stage in Docker specifica una serie di build in un file Docker. Le istruzioni Dockerfile sono divise in più sezioni o livelli e ne contengono più "DA" dichiarazione. Nella build multistage, il processo di sviluppo è suddiviso in multipli. Il primo comando "From" definisce l'immagine genitore o di base e questa sezione contiene principalmente le istruzioni di installazione o installazione e le sottosezioni utilizzano le dipendenze dell'istruzione di base.

Questo post dimostrerà il concetto di base della build Docker multistage.

Differenza tra costruzione semplice e costruzione multistage

La costruzione semplice contiene solo uno "DA"Per specificare l'immagine di base. Tutte le dipendenze dell'installazione e i file di origine vengono elaborati in un'unica sezione. L'immagine costruita attraverso la semplice build è anche di dimensioni enormi. Tuttavia, le build multistage sono divise in più fasi e hanno più dichiarazioni "da". La build multistage è anche utile per ridurre la dimensione dell'immagine. Può anche essere utilizzato se gli utenti desiderano elaborare o creare immagini in blocchi per eseguire il codice nelle sezioni.

Come creare un'immagine da build multistage?

Per creare una semplice immagine Docker da build multistage, in primo luogo, crea un file Dockerfile a più livelli. Quindi, eseguire il “costruire"Comando di Docker di costruire l'immagine. Per fare ciò, guarda i passaggi indicati.

Passaggio 1: Open Terminal

Innanzitutto, avvia il terminale dal menu Start per utilizzare Docker CLI. Per fare ciò, utilizzeremo il "Git Bash" Su Windows:

Apri la directory/cartella dell'applicazione con l'aiuto di "CD"Comando:

$ cd multistage

Passaggio 2: creare file di codice

Successivamente, crea un file di programma. A tale scopo, abbiamo utilizzato l'editor di testo nano per creare un "principale.andare"File di programma. Tuttavia, puoi anche utilizzare Notepad o Visual Studio Code Editor:

$ nano main.andare

Incolla il codice di seguito donati nel file:

importazione (
"FMT"
"tronco d'albero"
"net/http"
)
Funchandler (W http.Responsewriter, r *http.Richiesta)
fmt.Fprintf (w, "ciao! Benvenuto in LinuxHint Tutorial ")

funcmain ()
http.Handlefunc ("/", gestore)
tronco d'albero.Fatale (http.Ascoltandserve ("0.0.0.0: 8080 ", zero))

Passaggio 3: crea Dockerfile a più stadi

Successivamente, genera e aperto "Dockerfile"In un editor di testo nano per specificare le istruzioni a più stadi per la build multistage:

$ nano Dockerfile

Copia lo snippet seguente in Dockerfile. Qui, le istruzioni di Dockerfile sono divise in due sezioni:

  • La prima sezione utilizza il “Golang: 1.8"Come immagine di base e contiene le istruzioni di base.
  • La seconda sezione utilizza il "alpino"Immagine e definisce le impostazioni predefinite o l'ingresso tramite l'istruzione" CMD ":
Da golang: 1.8 come base
Workdir/go/src/app
Copia principale.andare .
Esegui GO Build -O Webserver .
Da alpino
Workdir /app
Copia - -from = base/go/src/app/app/
Cmd ["./server web"]

Passaggio 4: genera l'immagine Docker multistage

Utilizzando un Dockerfile a più stadi, genera l'immagine attraverso "Build Docker"Comando. Qui, per definire il tag/nome di un'immagine, abbiamo utilizzato il “-T" bandiera:

$ Docker Build -t Nuovo Web-Image .

Verifica se l'immagine viene creata o meno utilizzando il "Immagini Docker "Comando:

$ Docker Image Nuova immagine

L'output seguente mostra che l'immagine viene creata e la dimensione dell'immagine è solo "12.9 MB":

Passaggio 4: esegui l'immagine Docker

Per eseguire l'immagine per creare e avviare un contenitore per la distribuzione del programma, passare attraverso il comando menzionato. Qui, il "-P"La bandiera viene utilizzata per allocare la porta esposta del contenitore:

$ Docker Run -P 8080: 8080 Nuova Image

Visita il porto di esposizione dell'host locale nel browser per verificare se il contenitore è avviato o meno:

Dall'immagine sopra, può essere cancellato che abbiamo distribuito il programma attraverso la build multistage.

Conclusione

Nella build multistage, il processo di sviluppo è suddiviso in multipli. Dockerfile è diviso in più sezioni e ha più "DA"Dichiarazioni. Può essere utilizzato se gli utenti desiderano elaborare o creare immagini in blocchi per eseguire il codice nelle sezioni. La build multistage è anche utile per ridurre la dimensione dell'immagine. Questo articolo ha dimostrato la comprensione di base delle build multistage Docker.