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?
- Grundlæggende kommandoer i Dockerfile
- Hvordan kører man en instans fra en Dockerfile i Docker?
- Hvordan kører man en instans fra en Dockerfile i Docker Compose?
- Konklusion
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 / gå / 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:
hovedpakkeimportere (
'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
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
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å-imgI 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.8WORKDIR / gå / 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 psOutputtet 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