En nybegynnerguide til en multistage docker build

En nybegynnerguide til en multistage docker build
Docker Multi-Stage Build er prosessen med å spesifisere en serie bygg i en Dockerfile. Med andre ord, Dockerfile inneholder flere “FRA”Uttalelser i en enkelt fil, og den nye fra uttalelsen bruker forskjellige eller tidligere baseinstruksjoner. Multistage Build gjør det mulig for utviklere å dele ned utviklingsprosessen i multistage. Videre blir basisinstruksjonen referert til som installasjons- eller installasjonsinstruksjoner, og andre instruksjoner bruker avhengigheter av baseinstruksjon for å fungere ordentlig.

Denne oppskrivningen vil gi en guide til en multistage docker build.

En nybegynnerguide til en multistage docker build

For å lage et Docker -bilde gjennom enkel DockerFile og multistage Dockerfile -bygg, ta en titt på de listede metodene:

  • Hvordan bygge et enkelt Docker -bilde?
  • Hvordan bygge et Docker -bilde fra multistage dockerfile?

Hvordan bygge et enkelt Docker -bilde?

For å lage et enkelt Docker -bilde ved hjelp av en enkel DockerFile, gå gjennom de gitte instruksjonene.

Trinn 1: Åpen terminal
Fra vinduene “Oppstart”Meny, åpne Git -terminalen:

Trinn 2: Lag ny katalog
Deretter oppretter du en ny prosjektkatalog ved hjelp av den gitte kommandoen:

$ mkdir multistage

Etter det, åpne prosjektkatalogen ved hjelp av "CD”Kommando:

$ CD Multistage

Trinn 3: Opprett programfil
Lag og åpne en ny programfil for å implementere “Golang" program. For eksempel har vi laget en "hoved-.gå”Fil:

$ nano main.gå

Lim inn den medfølgende koden i "hoved-.gå”Fil. Dette programmet vil skrive ut den enkle utgangen “Hallo! Velkommen til Linuxhint Tutorial”På den lokale verten:

import (
"FMT"
"Logg"
"Nett/http"
)
func handler (w http.ResponseWriter, R *http.Be om)
fmt.Fprintf (w, "Hei! Velkommen til Linuxhint Tutorial ")

func main ()
http.HandleFunc ("/", handler)
Logg.Fatal (http.Listenandserve ("0.0.0.0: 8080 ", null))

Trykk "Ctrl+O”For å redde endringene og“Ctrl+x”Å gå ut.

Trinn 4: Lag dockerfile
Lag og åpne en ny Dockerfile i Nano Text Editor ved hjelp av “Nano Dockerfile”Kommando:

$ nano dockerfile

Lim inn følgende kode inne i “Dockerfile”Det vil instruere beholderen om hvordan du distribuerer prosjektet:

Fra Golang: 1.8
Workdir/go/src/app
Kopier Main.gå .
Run Go Build -o Webserver .
Cmd ["./Internett server"]

Trykk "Ctrl+O”For å lagre filen og“Ctrl+x”For å forlate redaktøren:

Trinn 5: Lag Docker -bilde
Ved hjelp av DockerFile, lag et nytt Docker -bilde gjennom “Docker Build”Kommando. “-t”Tag brukes til å spesifisere bildekoden/navnet:

$ docker build -t new-web-image .

Trinn 6: Kjør Docker -bilde
Etter å ha opprettet Docker-bildet, bruker du den nedenfor-nevnte kommandoen for å kjøre Docker-bildet. “-p”Alternativet brukes til å spesifisere portnummeret der Docker -beholderen skal utføre programmet:

$ Docker Run -P 8080: 8080 New-Web-Image

Etter det, naviger til “http: // localhost: 8080”For å sjekke om applikasjonen kjører eller ikke:

Fra output ovenfor kan du se at vi har distribuert applikasjonen på Localhost:

Trinn 7: Sjekk Docker -bilder
Til slutt, utfør "Docker -bilder ”Kommando for å sjekke tilleggsinformasjonen om det nyopprettede Docker -bildet:

$ docker bilder new-web-image

Det kan observeres at størrelsen på Docker -bildet er for stort til å utføre det lille prosjektet. I et slikt scenario kan flertrinnsbyggingen brukes til å redusere docker-bildestørrelsen:

Hvordan bygge et Docker -bilde fra multistage dockerfile?

For å lage en multistage dockerfile for å dele ned utviklingsprosessene i stadier og for å redusere bildestørrelsen, kan du se på medfølgende trinn.

Trinn 1: Åpne Dockerfile
Først åpner du Dockerfile i “Nano Text Editor”Gjennom den nevnte kommandoen:

$ nano dockerfile

Trinn 2: Lag multistage dockerfile
Lim inn følgende kode i DockerFile. Det kan legges merke til at Docker -filen inneholder mer enn en “FRA”Uttalelse, som betyr at vi lager en flertrinns Dockerfile:

Fra Golang: 1.8 som base
Workdir/go/src/app
Kopier Main.gå .
Run Go Build -o Webserver .
Fra alpine
WorkDir /App
Kopier -fra = base/go/src/app/app/
Cmd ["./Internett server"]

Trykk "Ctrl+O”For å lagre endringer og“Ctrl+x”For å forlate redaktøren.

Trinn 3: Lag Docker -bilde
Nå, bygg det nye Docker -bildet ved hjelp av en flerstegbygg. For dette formålet, utfør den gitte kommandoen:

$ docker build -t new-web-image .

Igjen, sjekk tilleggsinformasjonen om Docker -bildet gjennom “Docker -bilder”Kommando:

$ docker bilder new-web-image

Utgangen viser at vi har opprettet en Docker -fil og størrelsen på Docker -filen reduseres til bare "12.9MB”:

Trinn 4: Kjør Docker -bilde
Til slutt, kjør Docker -bildet for å utføre beholderen for å bekrefte om Docker -bildet fungerer som den skal eller ikke:

$ Docker Run -P 8080: 8080 New-Web-Image

Åpne den lokale vertsserveren ved å navigere til “http: // localhost: 8080”På nettleseren:

Utgangen viser at vi har distribuert programmet gjennom en flerstegbygg.

Konklusjon

Docker Multistage Build spesifiserer serien med bygg i stadier. For å lage en multistage dockerfile, spesifiser mer enn en "fra" -uttalelse og referer til den første "FRA”Uttalelse som basebygg. Etter det, lag et nytt Docker -bilde ved å bruke “Docker Build -t .”Kommando. Innlegget har utdypet en komplett guide til en multistage docker build.