Dokeris

Kaip veikia „Dockerfile“?

Kaip veikia „Dockerfile“?
Dokerio atvaizdo pagalba galite dislokuoti tik vieną konteinerį. Tačiau jei jums reikia iš to paties vaizdo įdėti kelis konteinerius (kiekvieną skirtingoms užduotims atlikti), kas atsitiks? Tai galite išspręsti naudodami „dockerfile“.

„Dockerfile“ yra paprastas tekstinis failas, kuriame yra visos komandos, kurias vartotojas gali iškviesti komandinėje eilutėje, norėdamas surinkti ar sukurti vaizdą. Naudodamiesi „Docker“ komponavimo versija, galite lengvai automatizuoti kūrimą, kuris paleidžia kelias komandas, apibrėžtas „Docker“ faile iš eilės.

Pvz., Norėdami atsisiųsti docker vaizdą iš docker hub, atsižvelgdami į savo specifinius plėtros poreikius. Tada norite atnaujinti vaizdą, įdiekite keletą paketų savo kūrimo procesui. Tokiu atveju galite sukurti „dockerfile“, įtraukti visus parametrus pagal savo specifinius poreikius ir sukurti pasirinktinį vaizdą. Sukūrę „dockerfile“, galite jį naudoti dar kartą, kad sukurtumėte tą patį vaizdą rankiniu būdu neįdiegdami visų reikiamų paketų, skirtų jūsų kūrimo procesui.

„Dockerfile Basic“

Prieš dirbant su „dockerfile“, svarbu žinoti, kaip sukurti „dockerfile“. „Dockerfile“ yra konkretūs raktiniai žodžiai, kuriuos galima naudoti kuriant konkretų vaizdą. Toliau pateikiamas trumpas visų „dockerfile“ naudojamų raktinių žodžių paaiškinimas:

„Dockerfile“ kūrimas

Šiame skyriuje sukursime „dockerfile“, kad sukurtume LAMP serverio vaizdą iš „Ubuntu“ pagrindinio vaizdo.

Pirmiausia turėsite sukurti katalogą, kuriame saugotumėte „docker“ failą. Jį galite sukurti naudodami šią komandą:

mkdir LAMP

Tada kataloge sukurkite katalogą „Dockerfile“:

nano LAMP / Dockerfile

Pridėkite šias eilutes:

IŠ „ubuntu“: naujausias
PRIEŽIŪROS Hitesh Jethva
ENV DEBIAN_FRONTEND = neinteraktyvus
Paleiskite apt-get update -y && apt-get install apache2 mariadb-serverį
libapache2-mod-php php php-cli php-common php-mysql php-json php-curl -y
CMD ["apachectl", "- D", "FOREGROUND"]
POVEIKIS 8080

Baigę išsaugokite ir uždarykite failą.

Pastato vaizdas su „Dockerfile“

Sukūrę „Dockerfile“, naudodami „Dockerfile“, galite lengvai sukurti pasirinktinį LAMP vaizdą.

Pirmiausia pakeiskite katalogą į LAMP ir paleiskite šią komandą, kad sukurtumėte vaizdą iš šio failo:

CD ŠVIESA
docker build -t "lempa: Dockerfile".

Pirmiau nurodyta komanda pradės atsisiųsti naujausią „Ubuntu“ vaizdą iš „Docker Hub“ ir įdiegė būtinus „Dockerfile“ nurodytus paketus. Kai vaizdas bus sėkmingai sukurtas, turėtumėte pamatyti šį išvestį:

Siuntimo versijos kontekstas siunčiamas „Docker“ deemonui 2.048 kt
1/6 žingsnis: IŠ „ubuntu“: naujausias
naujausias: traukimas iš bibliotekos / „ubuntu“
54ee1f796a1e: Patraukite
f7bfea53ad12: ištraukite
46d371e02073: Patraukite
b66c17bbf772: ištraukite
Santrauka: sha256: 31dfb10d52ce76c5ca0aa19d10b3e6424b830729e32a89a7c6eee2cda2be67a5
Būsena: atsisiųstas naujesnis „ubuntu“: naujausias vaizdas
---> 4e2eef94cd6b
2/6 žingsnis: PRIEŽIŪROS Hiteshas Jethva
---> Veikia 047977af2c2a
Tarpinio konteinerio 047977af2c2a pašalinimas
---> 1331df625c4c
3/6 žingsnis: ENV DEBIAN_FRONTEND = neinteraktyvus
---> Veikia 3597152c7a1b
Tarpinio konteinerio 3597152c7a1b nuėmimas
---> 86c82c95e75d
4/6 žingsnis: Paleiskite apt-get update -y && apt-get install apache2 mariadb-server
libapache2-mod-php php php-cli php-common php-mysql php-json php-curl -y
Tarpinio konteinerio nuėmimas 322532299fd9
---> f6897a9554f7
5/6 žingsnis: CMD ["apachectl", "- D", "FOREGROUND"]
---> Veikia 669635bc8bcb
Tarpinio konteinerio 669635bc8bcb nuėmimas
---> e8400eb2e677
6/6 žingsnis: POVEIKIS 8080
---> Veikia 937ae2b2d305
Tarpinio konteinerio 937ae2b2d305 nuėmimas
---> 2123a857361d
Sėkmingai pastatytas 2123a857361d
Sėkmingai pažymėta lempa: „Dockerfile“

Dabar galite išvardyti naujai sukurtą vaizdą vykdydami šią komandą:

dokininkų vaizdai

Turėtumėte pamatyti šį išvestį:

SAUGOTOJO ŽYMOS VAIZDO ID SUKURTAS DYDIS
lempa Dockerfile 2123a857361d prieš 44 sekundes 520MB
„ubuntu“ naujausias 4e2eef94cd6b prieš 8 dienas 73.9 MB

Dabar rankoje turite pasirinktinį LAMP serverio vaizdą. Taip pat galite pamatyti kiekvienos komandos istoriją naudodami šią komandą:

doko istorijos lempa: „Dockerfile“

Turėtumėte pamatyti šį išvestį:

SUKURTAS VAIZDAS, SUKURTAS DYDŽIO KOMENTARU
2123a857361d prieš 16 min. / Bin / sh -c # (nop) POVEIKIS 8080 0B
e8400eb2e677 prieš 16 minučių / bin / sh -c # (nop) CMD ["apachectl" "-D" "FO… 0B
f6897a9554f7 prieš 16 minučių / bin / sh -c apt-get update -y && apt-get inst… 446 MB
86c82c95e75d prieš 17 minučių / bin / sh -c # (nop) ENV DEBIAN_FRONTEND = nonin ... 0B
1331df625c4c prieš 17 min. / Bin / sh -c # (nop) PRIEŽIŪROS „Hitesh Jethva 0B“
4e2eef94cd6b prieš 8 dienų / bin / sh -c # (nop) CMD ["/ bin / bash"] 0B

Konteinerio kūrimas iš LAMP Image

Dabar galite paleisti konteinerį iš savo vaizdo naudodami šią komandą:

docker run -dit lempa: Dockerfile

Paleidus sudėtinį rodinį, turėtumėte pamatyti šį išvestį:

0d2beb7dba01bb763768b116f734ae68286cee00d2ae923b2b7241c39ad54208

Galite patikrinti veikiantį sudėtinį rodinį naudodami šią komandą:

dokininkas ps

Turėtumėte gauti šią išvestį:

KONTEINERIO ID VAIZDO KOMANDA SUKURTA STATUSO UOSTŲ PAVADINIMAI
c14794784eb2 lempa: „Dockerfile“ „apachectl-D FOREGR…“ prieš 2 minutes Iki 2 minučių 0.0.0.0: 8080-> 8080 / tcp quirky_ramanujan

Išvada

Šiame vadove sužinojote, kas yra „Dockerfile“ ir kaip sukurti „Docker“ vaizdą naudojant „Dockerfile“. Tai labai naudinga kuriant pasirinktinius vaizdus, ​​o ne daryti ištraukto vaizdo pakeitimus.

Pelės kairiuoju pelės mygtuku mygtukas neveikia „Windows 10“
Jei naudojate specialią pelę su savo nešiojamuoju kompiuteriu arba staliniu kompiuteriu, tačiau neveikia pelės kairysis mygtukas dėl tam tikrų priežas...
Žymeklis peršoka arba juda atsitiktinai, kai rašote „Windows 10“
Jei pastebite, kad pelės žymeklis peršoka arba juda pats, automatiškai, atsitiktinai, kai vedate „Windows“ nešiojamąjį kompiuterį ar kompiuterį, kai k...
Kaip pakeisti pelės ir jutiklinių plokščių slinkimo kryptį sistemoje „Windows 10“
Pelė ir Jutiklinė dalisTai ne tik palengvina skaičiavimus, bet ir efektyvesnį bei mažiau laiko reikalaujantį. Mes neįsivaizduojame gyvenimo be šių pri...