Vsebniki Docker so ena bistvenih komponent platforme Docker, ki pakira program, nastavitve konfiguracije in odvisnosti z uporabo slike Docker. Slika Docker je preprosta predloga ali posnetek vsebnika, ki vodi vsebnik, kako zapreti aplikacijo v vsebnik. Te slike so večinoma na voljo v uradnem registru središča Docker. Uporabniki lahko tudi oblikujejo te slike v skladu z zahtevami projekta z uporabo Dockerfile.
Ta blog bo pojasnil:
- Kaj je Dockerfile?
- Osnovni ukazi Dockerfile
- Kako zagnati primerek iz datoteke Docker v Dockerju?
- Kako zagnati primerek iz datoteke Docker v Docker Compose?
- Zaključek
Kaj je Dockerfile?
Datoteka Docker je običajna besedilna datoteka, ki vsebuje ukaze in navodila, ki določajo osnovno strukturo vsebnika Docker. Ta navodila je mogoče izvesti v terminalu brez kakršne koli datoteke, vendar je izvajanje vsakega ukaza enega za drugim naporna in zapletena naloga. Dockerfile razvijalcem olajša podajanje vseh zahtev in navodil v eno datoteko. Ta datoteka bo nato uporabljena za izdelavo predloge vsebnika, ki je slika Docker. Po tem se izvede slika dockerja za zagon primerka v vsebniku Docker.
Osnovni ukazi Dockerfile
Nekateri osnovni ukazi datoteke Dockerfile, ki se uporabljajo za definiranje osnovnega posnetka vsebnika, so navedeni spodaj v obliki tabele:
Ukazi | Opis |
OD | ' OD ” se uporablja za definiranje osnovne slike za predlogo vsebnika. Te slike so pridobljene iz uradnega registra Docker Hub. |
VZDRŽEVALEC | ' VZDRŽEVALEC ” Ukaz določa informacije o avtorju (ime in e-pošta), ki ustvarja sliko Docker. |
DELOVNI DIR | Določa delovni imenik aplikacije v vsebniku. |
KOPIRATI | Uporablja se za kopiranje izvornih in konfiguracijskih datotek iz gostiteljskega sistema na določeno pot vsebnika Docker. |
DODAJ | ' DODAJ ' je podoben ukazu ' KOPIRATI ”, podpira pa tudi oddaljeni URL za dodajanje datoteke iz URL-ja na pot vsebnika, na primer iz repozitorija GitHub na pot vsebnika. |
TECI | ' TECI ” se uporablja za izvajanje ukazov v vsebniku. V Dockerfile se večinoma uporablja za upravljanje in namestitev dodatnih odvisnosti znotraj vsebnika. |
CMD | “ CMD ” definira privzete točke vsebnikov Docker. V bistvu definira izvršljive datoteke in privzete parametre » VSTOPNA TOČKA ”. |
VSTOPNA TOČKA | ' VSTOPNA TOČKA ” Ukaz se uporablja tudi za nastavitev izvedljivih datotek vsebnika Docker. V bistvu nastavi privzete aplikacije, ki se vsakič uporabljajo v vsebniku. Ukaz ENTRYPOINT se enkrat uporabi tudi v datoteki Docker. |
UPORABNIK | Ta ukaz se uporablja za nastavitev UID (uporabniškega imena) za izvajanje ukazov v vsebniku |
GLASNOST | ' GLASNOST ” se uporablja za povezovanje ali pripenjanje zunanjega nosilca (datotečnega sistema) z vsebnikom. |
ENV | ' ENV ” se uporablja za nastavitev spremenljivk okolja vsebnika. |
ARG | ' ARG ” se uporablja za posredovanje argumentov znotraj vsebnika. |
IZPOSTITE | ' IZPOSTITE ” ukaz določa razkrivajoča vrata, na katerih se bo vsebnik izvajal. |
ONBUILD | Bere navodila iz osnovne slike, vendar ta navodila sproži prek spodnje slike. |
OZNAKA | ' OZNAKA ” se uporablja za določanje metapodatkov posnetka vsebnika. |
Kako zagnati primerek Docker iz datoteke Docker v Dockerju?
Če želite zagnati primerek ali vsebnik Docker z uporabo Dockerfile, najprej ustvarite Dockerfile. Nato naredite osnovni posnetek vsebnika s pomočjo Dockerfile. Po tem zaženite posnetek, da zaženete primerek Docker.
Sledite spodnjim navodilom za ilustracijo.
1. korak: Ustvarite datoteko Docker
Najprej ustvarite Dockerfile. Ne pozabite, da Dockerfile nima nobene datotečne pripone. Nato v datoteko prilepite naslednje ukaze:
IZ golanga: 1.8
DELOVNI DIR / pojdi / src / aplikacija
KOPIRAJ main.go .
RUN go build -O spletni strežnik.
IZPOSTITE 8080 : 8080
VSTOPNA TOČKA [ './spletni strežnik' ]
2. korak: Ustvarite programsko datoteko
Nato ustvarite novo datoteko z imenom ' main.go «, ki vsebuje preprost program Golang. V ta namen v datoteko prilepite naslednji program:
glavni paketuvoz (
'fmt'
'dnevnik'
'net/http'
)
upravljalnik funkcij ( noter http.ResponseWriter, r * http.Zahteva ) {
fmt.Fprintf ( noter , 'Pozdravljeni! Dobrodošli v vadnici LinuxHint' )
}
func main ( ) {
http.HandleFunc ( '/' , vodja )
log.Usodno ( http.ListenAndServe ( '0.0.0.0:8080' , nič ) )
}
3. korak: Ustvarite posnetek vsebnika
Zdaj sestavite Dockerjev posnetek vsebnika z uporabo » docker build -t
V zgornjem ukazu je » -t ” nastavi ime ali oznako slike, “ -f ” določa pot do datoteke Dockerfile, iz katere mora motor Docker prebrati kontekst gradnje:
Če želite preveriti, ali je slika uspešno ustvarjena ali ne, zaženite » docker slike
Izhod kaže, da smo uspešno ustvarili posnetek vsebnika iz datoteke Dockerfile:
4. korak: Zaženite posnetek, da zaženete vsebnik
Zdaj zaženite primerek Dockerja v vsebniku Docker tako, da izvedete posnetek vsebnika, ki je ustvarjen v zgornjem koraku:
docker run -str 8080 : 8080 --ime go-cont -d go-imgV zgornjem ukazu je » -str ' zažene vsebnik na ' 8080 ' pristanišče ' – ime « nastavi ime vsebnika in » -d ” zažene vsebnik v ločenem načinu (storitev v ozadju):
Če želite preveriti, ali se vsebnik izvaja ali ne, navedite vsebnike, ki se izvajajo, s pomočjo » docker ps ” ukaz:
docker ps
Zdaj se pomaknite do » http://localhost:8080 « in preverite, ali se aplikacija izvaja na izpostavljajočih vratih ali ne:
Zgornji izhod kaže, da smo primerek Docker učinkovito zagnali z uporabo Dockerfile.
Kako zagnati primerek iz datoteke Docker v Docker Compose?
Docker compose je še en pomemben vtičnik platforme Docker, ki nam omogoča zagon več primerkov v različnih vsebnikih hkrati. Uporabniki lahko primerek Docker zaženejo tudi iz datoteke Dockerfile s pomočjo vtičnika za sestavljanje Docker. Za ponazoritev sledite podanim korakom.
1. korak: Ustvarite Dockerfile
Najprej ustvarite Dockerfile. Na primer, uporabljamo isto datoteko Docker in programsko datoteko, ki sta uporabljeni v zgornjem razdelku:
IZ golanga: 1.8DELOVNI DIR / pojdi / src / aplikacija
KOPIRAJ main.go .
RUN go build -O spletni strežnik.
IZPOSTITE 8080 : 8080
VSTOPNA TOČKA [ './spletni strežnik' ]
2. korak: Ustvarite datoteko docker-compose.yml
Nato ustvarite » docker-compose.yml ” in kopirajte naslednje pare ključev v datoteko:
različica: '3'storitve:
splet:
zgraditi:.
vrata:
- 8080 : 8080
V zgoraj omenjenem izrezku:
- “ storitve ” se uporablja za določanje storitev sestavljanja, ki se bodo izvajale v ločenem vsebniku. Za ilustracijo smo konfigurirali samo eno storitev ' splet ”, da bo koda čista in preprosta.
- “ graditi ” par ključev se uporablja za branje konteksta gradnje iz datoteke Dockerfile. Tukaj bo docker prebral navodila iz datoteke Dockerfile in ustrezno zgradil vsebnik.
- “ pristanišča ” definira razkrivajoča vrata, na katerih se bo vsebnik izvajal.
3. korak: Zaženite primerek Docker
Zdaj zaženite primerek Dockerja v vsebniku z uporabo » docker-sestavi ” ukaz:
docker-sestavi -d
Za preverjanje preverite seznam delujočih vsebnikov za sestavljanje z uporabo » docker-compose ps ” ukaz:
docker-compose psRezultat kaže, da je ' splet ” storitev se uspešno izvaja v “ golangapp-web-1 ” posoda:
Pomaknite se do razkritih vrat storitve sestavljanja in preverite, ali se program izvaja ali ne. Spodnji rezultat kaže, da smo uspešno zagnali primerek Dockerja iz datoteke Dockerfile z uporabo Docker compose:
To je vse o izvajanju primerka docker iz datoteke Dockerfile.
Zaključek
Če želite izvesti primerek Dockerja v vsebniku iz datoteke Dockerfile, najprej ustvarite datoteko Dockerfile. Dodajte ukaze znotraj datoteke, da ustvarite sliko ali predlogo vsebnika Docker. Nato naredite sliko vsebnika ali posnetek s pomočjo » docker build -t