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?
- Grunnleggende kommandoer i Dockerfile
- Hvordan kjøre en instans fra en Dockerfile i Docker?
- Hvordan kjøre en instans fra en Dockerfile i Docker Compose?
- Konklusjon
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 / gå / 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:
hovedpakkeimport (
'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
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
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å-imgI 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.8WORKDIR / gå / 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 psUtgangen 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