Hvordan kører man en Docker-instans fra en Dockerfile?

Hvordan Korer Man En Docker Instans Fra En Dockerfile



Docker er en vellidt åben platform, der er universelt brugt til at bygge, teste, implementere og sende applikationer i et containermiljø. Docker bruger OS-niveauet for virtualisering og understøtter forskellige komponenter såsom Docker-containere, billeder, netværk og Docker-volumen.

Docker-beholderne er en af ​​de væsentlige komponenter i Docker-platformen, der pakker programmet, konfigurationsindstillinger og afhængigheder ved hjælp af Docker-billedet. Docker-billedet er en simpel skabelon eller et øjebliksbillede af en container, der guider containeren til, hvordan man containeriserer en applikation. Disse billeder er for det meste tilgængelige på det officielle Docker-hub-register. Brugere kan også designe disse billeder i henhold til projektkrav ved hjælp af Dockerfile.

Denne blog vil forklare:







Hvad er en Dockerfile?

En Dockerfil er en normal tekstfil, der indeholder kommandoer og instruktioner, der definerer den grundlæggende struktur af en Docker-container. Disse instruktioner kan udføres i terminalen uden nogen fil, men at køre hver kommando en efter en er en hektisk og kompleks opgave. Dockerfile gør det nemt for udviklere at specificere alle krav og instruktioner i én fil. Denne fil vil derefter blive brugt til at bygge containerskabelonen, som er et Docker-billede. Derefter udføres docker-billedet for at starte forekomsten i Docker-beholderen.



Grundlæggende kommandoer i Dockerfile

Nogle grundlæggende kommandoer i Dockerfile, der bruges til at definere det grundlæggende snapshot af containeren, er angivet nedenfor i tabelform:



Kommandoer Beskrivelse
FRA Det ' FRA ” kommandoen bruges til at definere basisbilledet for containerskabelonen. Disse billeder er hentet fra den officielle Docker-registrering Docker Hub.
VEDLIGEHOLDER Det ' VEDLIGEHOLDER ”-kommandoen definerer forfatter-(navn og e-mail) information, der opretter Docker-billedet.
WORKDIR Det specificerer arbejdsbiblioteket for en containeriseret applikation.
KOPI Bruges til at kopiere kilde- og konfigurationsfilerne fra værtssystemet til den angivne sti til Docker-beholderen.
TILFØJE Det ' TILFØJE ' kommandoen ligner ' KOPI ” kommandoen, men den understøtter også den eksterne URL til at tilføje filen fra URL’en til containerstien, såsom fra GitHub-lageret til containerstien.
LØB Det ' LØB ” bruges til at køre kommandoerne i container. I Dockerfile bruges det mest til at administrere og installere ekstra afhængigheder inde i containeren.
CMD CMD ” definerer standardpunkterne for Docker-containere. Det definerer grundlæggende de eksekverbare filer og standardparametre for ' INDGANG ”.
INDGANG Det ' INDGANG Kommandoen bruges også til at indstille de eksekverbare filer for Docker-beholderen. Det indstiller grundlæggende de standardapplikationer, der bruges i en container hver gang. ENTRYPOINT-kommandoen bruges også én gang i en Dockerfile.
BRUGER Denne kommando bruges til at indstille UID (brugernavn) til at udføre kommandoerne i Container
BIND Det ' BIND Kommandoen bruges til at binde eller montere den eksterne volumen (filsystem) med en beholder.
ENV Det ' ENV kommandoen bruges til at indstille containerens miljøvariabler.
ARG Det ' ARG ” bruges til at videregive argumenterne inde i containeren.
UDSÆTTE Det ' UDSÆTTE ”-kommandoen angiver de eksponerende porte, som containeren vil blive udført på.
ONBYG Den læser instruktioner fra basisbilledet, men udløser disse instruktioner via nedstrømsbilledet.
ETIKET Det ' ETIKET ” bruges til at angive metadataene for beholder-øjebliksbilledet.

Hvordan kører man en Docker-instans fra en Dockerfile i Docker?

For at køre en Docker-instans eller -beholder ved hjælp af Dockerfile skal du først oprette en Dockerfile. Lav derefter det grundlæggende snapshot for containeren ved hjælp af Dockerfile. Kør derefter snapshottet for at starte Docker-forekomsten.





Følg nedenstående instruktioner til illustration.

Trin 1: Opret en Dockerfile

Først skal du oprette en Dockerfile. Husk, at Dockerfile ikke har nogen filtypenavn. Indsæt derefter følgende kommandoer i filen:



FRA golang: 1.8

WORKDIR / / src / app

COPY main.go .

LØB gå bygger -O Webserver .

UDSÆTTE 8080 : 8080

INDGANG [ './Webserver' ]

Trin 2: Lav programfil

Lav derefter en ny fil med navnet ' main.go ”, der indeholder det simple Golang-program. Til dette formål skal du indsætte følgende program i filen:

hovedpakke
importere (
'fmt'
'log'
'net/http'
)

func handler ( I http.ResponseWriter, r * http.Forespørgsel ) {
fmt.Fprintf ( I , 'Hej! Velkommen til LinuxHint Tutorial' )
}
func hoved ( ) {
http.HandleFunc ( '/' , handler )
log.Fatal ( http.ListenAndServe ( '0.0.0.0:8080' , nul ) )
}

Trin 3: Generer containersnapshot

Byg nu Docker-øjebliksbilledet af containeren ved hjælp af ' docker build -t -f . ”:

docker bygning -t gå-img -f Dockerfil .

I ovenstående kommando, ' -t ' indstilling angiver navnet eller mærket på billedet, ' -f ” option angiver stien til Dockerfilen, hvorfra Docker-motoren skal læse build-konteksten:

For at kontrollere, om billedet er oprettet med succes eller ej, skal du køre ' docker billeder kommando:

docker billeder go-img

Outputtet viser, at vi med succes har oprettet containerens snapshot fra Dockerfilen:

Trin 4: Kør snapshottet for at tænde for beholderen

Start nu forekomsten af ​​Docker i Docker-containeren ved at udføre containerens snapshot, der er oprettet i ovenstående trin:

docker-løb -s 8080 : 8080 --navn gå-forts -d gå-img

I ovenstående kommando, ' -s ' valgmulighed kører containeren på ' 8080 ' Havn, ' -navn ' indstiller containerens navn og ' -d ” valgmulighed kører containeren i frakoblet tilstand (baggrundstjeneste):

For at kontrollere, om containeren kører eller ej, skal du liste de kørende containere ned ved at bruge ' docker ps kommando:

havnearbejder ps

Naviger nu til ' http://localhost:8080 ' og kontroller, om applikationen kører på eksponeringsporten eller ej:

Ovenstående output indikerer, at vi effektivt har startet Docker-instansen ved hjælp af Dockerfile.

Hvordan kører man en instans fra en Dockerfile i Docker Compose?

Docker compose er et andet stort plugin til Docker-platformen, der gør det muligt for os at køre flere forekomster i forskellige containere på én gang. Brugere kan også køre Docker-forekomsten fra Dockerfile ved hjælp af Docker compose-plugin. Følg de givne trin til illustration.

Trin 1: Opret Dockerfile

Først skal du oprette en Dockerfile. For eksempel bruger vi den samme Dockerfile og programfil, som er brugt i ovenstående afsnit:

FRA golang: 1.8

WORKDIR / / src / app

COPY main.go .

LØB gå bygger -O Webserver .

UDSÆTTE 8080 : 8080

INDGANG [ './Webserver' ]

Trin 2: Lav docker-compose.yml fil

Dernæst skal du oprette en ' docker-compose.yml ” fil og kopier følgende nøglepar ind i filen:

version: '3'

tjenester:

web:
bygge:.
havne:
- 8080 : 8080

I ovennævnte udsnit:

  • tjenester ” bruges til at specificere de komponerende tjenester, der vil blive udført i en separat container. Til illustration har vi kun konfigureret én tjeneste ' web ” for at holde koden ren og enkel.
  • bygge ” nøglepar bruges til at læse build-konteksten fra Dockerfilen. Her vil docker læse instruktionerne fra Dockerfilen og bygge containeren i overensstemmelse hermed.
  • havne ”-tasten definerer de eksponerende porte, som containeren vil blive udført på.

Trin 3: Start Docker Instance

Kør nu Docker-forekomsten i en container ved hjælp af ' docker-compose up kommando:

docker-compose up -d

For verifikation, tjek listen over kørende skrivebeholdere ved hjælp af ' docker-compose ps kommando:

docker-komponer ps

Outputtet viser, at ' web ' tjenesten udføres med succes i ' golangapp-web-1 ' container:

Naviger til den åbne port for compose-tjenesten, og kontroller, om programmet kører eller ej. Nedenstående resultat viser, at vi med succes har startet Docker-instansen fra Dockerfile ved hjælp af Docker compose:

Det handler om at køre en docker-instans fra en Dockerfile.

Konklusion

For at udføre en Docker-instans i en container fra en Dockerfile, skal du først oprette Dockerfile. Tilføj kommandoerne inde i filen for at oprette billedet eller skabelonen for Docker-beholderen. Lav derefter containerbilledet eller snapshottet ved hjælp af ' docker build -t -f . ” kommando. Udfør nu containerbilledet for at starte Docker-forekomsten. Brugere kan også bruge Docker compose til at køre Docker-forekomsten fra Dockerfile. Dette indlæg har illustreret, hvordan man kører en Docker-instans fra en Dockerfile.