Hvordan kjøre en Docker-instans fra en Dockerfile?

Hvordan Kjore En Docker Instans Fra En Dockerfile



Docker er en godt likt åpen plattform som brukes universelt til å bygge, teste, distribuere og sende applikasjoner i et containerisert miljø. Docker bruker OS-nivået for virtualisering og støtter forskjellige komponenter som Docker-beholdere, bilder, nettverk og Docker-volum.

Docker-beholderne er en av de essensielle komponentene i Docker-plattformen som pakker programmet, konfigurasjonsinnstillingene og avhengighetene ved å bruke Docker-bildet. Docker-bildet er en enkel mal eller et øyeblikksbilde av en beholder som veileder beholderen om hvordan en applikasjon skal beholdes. Disse bildene er stort sett tilgjengelige i det offisielle Docker-hub-registeret. Brukere kan også designe disse bildene i henhold til prosjektkrav ved å bruke Dockerfile.

Denne bloggen vil forklare:







Hva er en Dockerfile?

En Dockerfil er en vanlig tekstfil som inneholder kommandoer og instruksjoner som definerer den grunnleggende strukturen til en Docker-beholder. Disse instruksjonene kan utføres i terminalen uten noen fil, men å kjøre hver kommando en etter en er en hektisk og kompleks oppgave. Dockerfile gjør det enkelt for utviklere å spesifisere alle kravene og instruksjonene i én fil. Denne filen vil deretter bli brukt til å bygge containermalen som er et Docker-bilde. Etter det kjøres docker-bildet for å starte forekomsten i Docker-beholderen.



Grunnleggende kommandoer i Dockerfile

Noen grunnleggende kommandoer i Dockerfile som brukes til å definere det grunnleggende øyeblikksbildet av beholderen er oppført nedenfor i tabellform:



Kommandoer Beskrivelse
FRA « FRA kommandoen brukes til å definere basisbildet for beholdermalen. Disse bildene er hentet fra det offisielle Docker-registeret Docker Hub.
VEDLIKEHOLDER « VEDLIKEHOLDER ”-kommandoen definerer forfatterinformasjonen (navn og e-post) som lager Docker-bildet.
WORKDIR Den spesifiserer arbeidskatalogen til en containerisert applikasjon.
KOPIERE Brukes til å kopiere kilde- og konfigurasjonsfilene fra vertssystemet til den angitte banen til Docker-beholderen.
LEGG TIL « LEGG TIL kommandoen ligner på ' KOPIERE ”-kommandoen, men den støtter også den eksterne URL-en for å legge til filen fra URL-en til containerbanen, for eksempel fra GitHub-depotet til containerbanen.
LØPE « LØPE ' brukes til å kjøre kommandoene i container. I Dockerfile brukes det mest til å administrere og installere ekstra avhengigheter inne i beholderen.
CMD ' CMD ” definerer standardpunktene til Docker-beholdere. Den definerer i utgangspunktet de kjørbare filene og standardparametrene til ' INNGANGSPUNKT '.
INNGANGSPUNKT « INNGANGSPUNKT Kommandoen brukes også til å angi kjørbare filer for Docker-beholderen. Den angir i utgangspunktet standardapplikasjonene som brukes i en beholder hver gang. ENTRYPOINT-kommandoen brukes også én gang i en Dockerfile.
BRUKER Denne kommandoen brukes til å angi UID (brukernavn) til å utføre kommandoene i Container
VOLUM « VOLUM kommandoen brukes til å binde eller montere det eksterne volumet (filsystemet) med en beholder.
ENV « ENV kommandoen brukes til å angi beholderens miljøvariabler.
ARG « ARG ' brukes til å sende argumentene inne i beholderen.
AVDEKKE « AVDEKKE ” kommandoen spesifiserer eksponeringsportene som containeren skal kjøres på.
PÅBYG Den leser instruksjoner fra basisbildet, men utløser disse instruksjonene via nedstrømsbildet.
MERKELAPP « MERKELAPP ” brukes til å spesifisere metadataene til beholder-øyeblikksbildet.

Hvordan kjøre en Docker-forekomst fra en Dockerfil i Docker?

For å kjøre en Docker-forekomst eller -beholder ved hjelp av Dockerfile, må du først opprette en Dockerfile. Deretter lager du det grunnleggende øyeblikksbildet for beholderen ved å bruke Dockerfile. Etter det, kjør øyeblikksbildet for å starte Docker-forekomsten.





Følg instruksjonene nedenfor for illustrasjon.

Trinn 1: Lag en Dockerfile

Først lager du en Dockerfile. Husk at Dockerfile ikke har noen filtype. Deretter limer du inn følgende kommandoer i filen:



FRA golang: 1.8

WORKDIR / / src / app

COPY main.go .

LØP og bygg -O Internett server .

AVDEKKE 8080 : 8080

INNGANGSPUNKT [ './Internett server' ]

Trinn 2: Lag programfil

Deretter lager du en ny fil med navnet ' main.go ” som inneholder det enkle Golang-programmet. For dette formålet limer du inn følgende program i filen:

hovedpakke
import (
'fmt'
'Logg'
'net/http'
)

funksjonsbehandler ( I http.ResponseWriter, r * http.Request ) {
fmt.Fprintf ( I , 'Hei! Velkommen til LinuxHint Tutorial' )
}
func main ( ) {
http.HandleFunc ( '/' , handler )
log.Fatal ( http.ListenAndServe ( '0.0.0.0:8080' , null ) )
}

Trinn 3: Generer øyeblikksbilde av beholder

Bygg nå Docker-øyeblikksbildet av beholderen ved å bruke ' docker build -t -f . ':

dockerbygg -t gå-img -f Dockerfil .

I kommandoen ovenfor, ' -t ' alternativet setter navnet eller etiketten på bildet, ' -f alternativet spesifiserer banen til Dockerfilen som Docker-motoren trenger for å lese byggekonteksten:

For å sjekke om bildet er opprettet eller ikke, kjør ' docker-bilder ' kommando:

docker-bilder go-img

Utdataene viser at vi har opprettet beholderens øyeblikksbilde fra Dockerfilen:

Trinn 4: Kjør øyeblikksbildet for å fyre opp beholderen

Start nå forekomsten av Docker i Docker-beholderen ved å utføre beholderens øyeblikksbilde som er opprettet i trinnet ovenfor:

docker run -s 8080 : 8080 --Navn gå-forts -d gå-img

I kommandoen ovenfor, ' -s ' alternativet kjører beholderen på ' 8080 ' havn, ' -Navn ' angir beholderens navn og ' -d alternativet kjører beholderen i frakoblet modus (bakgrunnstjeneste):

For å bekrefte om beholderen kjører eller ikke, lister opp de kjørende beholderne ved å bruke ' docker ps ' kommando:

havnearbeider ps

Nå, naviger til ' http://localhost:8080 ' og kontroller om applikasjonen kjører på eksponeringsporten eller ikke:

Utdataene ovenfor indikerer at vi effektivt har startet Docker-forekomsten ved å bruke Dockerfile.

Hvordan kjøre en instans fra en Dockerfile i Docker Compose?

Docker compose er en annen viktig plugin for Docker-plattformen som lar oss kjøre flere forekomster i forskjellige containere samtidig. Brukere kan også kjøre Docker-forekomsten fra Dockerfile ved å bruke Docker compose-plugin. Følg de angitte trinnene for illustrasjon.

Trinn 1: Lag Dockerfile

Først lager du en Dockerfile. For eksempel bruker vi den samme Dockerfile og programfilen som brukes i delen ovenfor:

FRA golang: 1.8

WORKDIR / / src / app

COPY main.go .

LØP og bygg -O Internett server .

AVDEKKE 8080 : 8080

INNGANGSPUNKT [ './Internett server' ]

Trinn 2: Lag docker-compose.yml-fil

Deretter oppretter du en ' docker-compose.yml ”-filen og kopier følgende nøkkelpar inn i filen:

versjon: '3'

tjenester:

web:
bygge: .
porter:
- 8080 : 8080

I det ovennevnte klippet:

  • ' tjenester ” brukes til å spesifisere komposisjonstjenestene som skal utføres i en separat beholder. For illustrasjon har vi bare konfigurert én tjeneste ' web ” for å holde koden ren og enkel.
  • ' bygge ” nøkkelpar brukes til å lese byggekonteksten fra Dockerfilen. Her vil docker lese instruksjonene fra Dockerfilen og bygge beholderen deretter.
  • ' havner ”-tasten definerer eksponeringsportene som containeren skal kjøres på.

Trinn 3: Start Docker Instance

Kjør nå Docker-forekomsten i en beholder ved å bruke ' docker-komponere ' kommando:

docker-komponere -d

For bekreftelse, sjekk listen over kjørende skrivebeholdere ved å bruke ' docker-compose ps ' kommando:

docker-komponere ps

Utgangen viser at ' web ' tjenesten utføres vellykket i ' golangapp-web-1 ' beholder:

Naviger til eksponeringsporten for compose-tjenesten og kontroller om programmet kjører eller ikke. Resultatet nedenfor viser at vi har startet Docker-forekomsten fra Dockerfile med Docker compose:

Det handler om å kjøre en docker-forekomst fra en Dockerfile.

Konklusjon

For å utføre en Docker-forekomst i en container fra en Dockerfile, må du først opprette Dockerfile. Legg til kommandoene inne i filen for å lage bildet eller malen til Docker-beholderen. Lag deretter beholderbildet eller øyeblikksbildet ved å bruke ' docker build -t -f . ' kommando. Kjør nå beholderbildet for å starte Docker-forekomsten. Brukere kan også bruke Docker compose for å kjøre Docker-forekomsten fra Dockerfile. Dette innlegget har illustrert hvordan du kjører en Docker-forekomst fra en Dockerfile.