„Docker“ konteineriai yra vienas iš esminių „Docker“ platformos komponentų, kurie supakuoja programą, konfigūracijos parametrus ir priklausomybes naudojant „Docker“ vaizdą. „Docker“ vaizdas yra paprastas konteinerio šablonas arba momentinė nuotrauka, kuri nurodo, kaip sudėti programą. Šiuos vaizdus dažniausiai galima rasti oficialiame „Docker“ centro registre. Vartotojai taip pat gali kurti šiuos vaizdus pagal projekto reikalavimus naudodami „Dockerfile“.
Šiame tinklaraštyje bus paaiškinta:
- Kas yra Dockerfile?
- Pagrindinės „Dockerfile“ komandos
- Kaip paleisti egzempliorių iš „Docker“ failo „Docker“?
- Kaip paleisti egzempliorių iš „Dockerfile“ programoje „Docker Compose“?
- Išvada
Kas yra Dockerfile?
Dockerfile yra įprastas tekstinis failas, kuriame yra komandos ir instrukcijos, apibrėžiančios pagrindinę Docker konteinerio struktūrą. Šios instrukcijos gali būti vykdomos terminale be jokio failo, tačiau kiekvienos komandos paleidimas po vienos yra įtempta ir sudėtinga užduotis. „Dockerfile“ leidžia kūrėjams lengvai nurodyti visus reikalavimus ir instrukcijas viename faile. Tada šis failas bus naudojamas sudėtinio rodinio šablonui, kuris yra „Docker“ vaizdas, sukurti. Po to paleidžiamas docker vaizdas, kad būtų paleistas egzempliorius Docker konteineryje.
Pagrindinės „Dockerfile“ komandos
Kai kurios pagrindinės „Dockerfile“ komandos, naudojamos pagrindiniam konteinerio momentiniam vaizdui apibrėžti, yra išvardytos toliau lentelės forma:
Komandos | apibūdinimas |
NUO | „ NUO “ komanda naudojama pagrindiniam konteinerio šablono vaizdui apibrėžti. Šie vaizdai paimti iš oficialaus „Docker“ registro „Docker Hub“. |
PRIEŽIŪRA | „ PRIEŽIŪRA “ komanda apibrėžia informaciją apie autorių (vardą ir el. pašto adresą), kuris kuria „Docker“ vaizdą. |
DARBO VADOVAS | Jis nurodo konteinerinės programos darbo katalogą. |
KOPIJUOT | Naudojamas šaltinio ir konfigūracijos failams nukopijuoti iš pagrindinės sistemos į nurodytą Docker konteinerio kelią. |
PAPILDYTI | „ PAPILDYTI “ komanda yra panaši į „ KOPIJUOT “, tačiau ji taip pat palaiko nuotolinį URL, kad būtų galima pridėti failą iš URL į sudėtinio rodinio kelią, pvz., iš „GitHub“ saugyklos į sudėtinio rodinio kelią. |
BĖGTI | „ BĖGTI “ naudojamas komandoms vykdyti konteineryje. „Dockerfile“ jis dažniausiai naudojamas papildomoms priklausomybėms konteinerio viduje valdyti ir įdiegti. |
CMD | “ CMD “ apibrėžia numatytuosius Docker konteinerių taškus. Tai iš esmės apibrėžia vykdomuosius failus ir numatytuosius parametrus ĮEJIMAS “. |
ĮEJIMAS | „ ĮEJIMAS ” komanda taip pat naudojama „Docker“ konteinerio vykdomiesiems failams nustatyti. Iš esmės jame nustatomos numatytosios programos, kurios kiekvieną kartą naudojamos konteineryje. Komanda ENTRYPOINT taip pat vieną kartą naudojama Dockerfile. |
VARTOTOJAS | Ši komanda naudojama UID (vartotojo vardui) nustatyti, kad būtų vykdomos sudėtinio rodinio komandas |
TOMAS | „ TOMAS ” komanda naudojama išoriniam tomui (failų sistemai) su konteineriu susieti arba prijungti. |
ENV | „ ENV “ komanda naudojama konteinerio aplinkos kintamiesiems nustatyti. |
ARG | „ ARG “ naudojamas argumentams perduoti konteinerio viduje. |
ATSAKYTI | „ ATSAKYTI ” komanda nurodo atviruosius prievadus, kuriuose bus vykdomas konteineris. |
ONBULD | Jis nuskaito instrukcijas iš pagrindinio vaizdo, bet suaktyvina šias instrukcijas per paskesnį vaizdą. |
ETIKETĖ | „ ETIKETĖ “ naudojamas konteinerio momentinės nuotraukos metaduomenims nurodyti. |
Kaip paleisti „Docker“ egzempliorių iš „Docker“ failo „Docker“?
Norėdami paleisti „Docker“ egzempliorių arba konteinerį naudodami „Dockerfile“, pirmiausia sukurkite „Dockerfile“. Tada sukurkite pagrindinį konteinerio momentinį vaizdą naudodami „Dockerfile“. Po to paleiskite momentinę nuotrauką, kad paleistumėte „Docker“ egzempliorių.
Vadovaukitės toliau pateiktomis iliustravimo instrukcijomis.
1 veiksmas: sukurkite „Dockerfile“.
Pirmiausia sukurkite Dockerfile. Atminkite, kad „Dockerfile“ neturi jokio failo plėtinio. Po to į failą įklijuokite šias komandas:
IŠ golango: 1.8
DARBO VADOVAS / eik / src / programėlė
KOPIJUOTI main.go .
BĖKITE, eikite statyti -O Tinklapio serveris .
ATSAKYTI 8080 : 8080
ĮEJIMAS [ './Tinklapio serveris' ]
2 veiksmas: sukurkite programos failą
Tada sukurkite naują failą pavadinimu ' pagrindinis.go “, kuriame yra paprasta Golang programa. Šiuo tikslu į failą įklijuokite šią programą:
pagrindinis paketasimportuoti (
'fmt'
'rąstas'
'net/http'
)
funkcijų tvarkytojas ( Į http.ResponseWriter, r * http.Užklausa ) {
fmt.Fprintf ( Į , 'Sveiki! Sveiki atvykę į LinuxHint mokymo programą' )
}
pagrindinė funkcija ( ) {
http.HandleFunc ( '/' , prižiūrėtojas )
log.Mirtina ( http.ListenAndServe ( '0.0.0.0:8080' , nulis ) )
}
3 veiksmas: sukurkite sudėtinio rodinio momentinę nuotrauką
Dabar sukurkite konteinerio Docker momentinį vaizdą naudodami „ docker build -t
Aukščiau pateiktoje komandoje „ -t “ parinktis nustato vaizdo pavadinimą arba žymą, “ -f “ parinktis nurodo kelią į Dockerfile, iš kurio Docker variklis turi nuskaityti kūrimo kontekstą:
Norėdami patikrinti, ar vaizdas sėkmingai sukurtas, paleiskite „ docker images
Išvestis rodo, kad sėkmingai sukūrėme konteinerio momentinį vaizdą iš Dockerfile:
4 veiksmas: paleiskite momentinę nuotrauką, kad suaktyvintumėte konteinerį
Dabar paleiskite „Docker“ egzempliorių „Docker“ konteineryje vykdydami konteinerio momentinį vaizdą, sukurtą atliekant aukščiau pateiktą veiksmą:
dokininko bėgimas -p 8080 : 8080 --vardas eik-tęsinys -d go-imgAukščiau pateiktoje komandoje „ -p “ parinktis paleidžia konteinerį „ 8080 'uostas', ' -vardas “ nustato konteinerio pavadinimą ir „ -d Parinktis paleidžia konteinerį atskirtu režimu (foninė paslauga):
Norėdami patikrinti, ar konteineris vykdomas, ar ne, surašykite veikiančių sudėtinių rodinių sąrašą naudodami „ dokeris ps “ komanda:
dokininkas ps
Dabar eikite į „ http://localhost:8080 “ ir patikrinkite, ar programa veikia atvirame prievade, ar ne:
Aukščiau pateikta išvestis rodo, kad mes veiksmingai pradėjome „Docker“ egzempliorių naudodami „Dockerfile“.
Kaip paleisti egzempliorių iš „Dockerfile“ programoje „Docker Compose“?
„Docker compose“ yra dar vienas pagrindinis „Docker“ platformos papildinys, leidžiantis vienu metu paleisti kelis egzempliorius skirtinguose konteineriuose. Vartotojai taip pat gali paleisti „Docker“ egzempliorių iš „Dockerfile“ naudodami „Docker“ kūrimo papildinį. Norėdami iliustruoti, atlikite nurodytus veiksmus.
1 veiksmas: sukurkite „Dockerfile“.
Pirmiausia sukurkite Dockerfile. Pavyzdžiui, mes naudojame tą patį Dockerfile ir programos failą, kurie naudojami aukščiau esančiame skyriuje:
IŠ golango: 1.8DARBO VADOVAS / eik / src / programėlė
KOPIJUOTI main.go .
BĖKITE, eikite statyti -O Tinklapio serveris .
ATSAKYTI 8080 : 8080
ĮEJIMAS [ './Tinklapio serveris' ]
2 veiksmas: sukurkite failą docker-compose.yml
Tada sukurkite „ docker-compose.yml ” failą ir į failą nukopijuokite šias raktų poras:
versija: '3'paslaugos:
žiniatinklis:
statyti:.
prievadai:
- 8080 : 8080
Aukščiau paminėtoje iškarpoje:
- “ paslaugos “ naudojamas norint nurodyti kūrimo paslaugas, kurios bus vykdomos atskirame konteineryje. Pavyzdžiui, mes sukonfigūravome tik vieną paslaugą “ žiniatinklio “, kad kodas būtų aiškus ir paprastas.
- “ statyti “ raktų pora naudojama kūrimo kontekstui iš Dockerfile nuskaityti. Čia „Docker“ perskaitys „Dockerfile“ instrukcijas ir atitinkamai sukurs konteinerį.
- “ prievadai “ klavišas apibrėžia atvirus prievadus, kuriuose bus vykdomas konteineris.
3 veiksmas: paleiskite „Docker“ egzempliorių
Dabar paleiskite „Docker“ egzempliorių konteineryje naudodami „ dokeris-komponuoti “ komanda:
dokeris-komponuoti -d
Norėdami patikrinti, patikrinkite veikiančių kūrimo konteinerių sąrašą naudodami „ dokeris-komponuoti ps “ komanda:
dokininkas-komponuoti psIšvestis rodo, kad „ žiniatinklio paslauga sėkmingai vykdoma golangapp-web-1 “ konteineris:
Eikite į atskleidžiamą kūrimo paslaugos prievadą ir patikrinkite, ar programa vykdoma, ar ne. Žemiau pateiktas rezultatas rodo, kad sėkmingai pradėjome „Docker“ egzempliorių iš „Dockerfile“ naudodami „Docker Compose“:
Tai viskas apie „Docker“ egzemplioriaus paleidimą iš „Dockerfile“.
Išvada
Norėdami vykdyti Docker egzempliorių konteineryje iš Dockerfile, pirmiausia sukurkite Dockerfile. Pridėkite komandas faile, kad sukurtumėte Docker konteinerio vaizdą arba šabloną. Tada sukurkite konteinerio vaizdą arba momentinę nuotrauką naudodami „ docker build -t