‫Am discutat anterior despre fișierul Docker Compose YAML și în această prelegere vom vorbi
‫despre linia de comandă compusă. Cerințele pentru această prelegere sunt ca și restul pentru această
‫secțiune unde trebuie să cunoașteți cu adevărat imaginile și containerele și cum să le folosiți și conceptele din jurul lor din secțiunile anterioare,
‫astfel încât să puteți folosi toate cele din interiorul comenzii compuse și YAML fişier. Instrumentul pentru linia de comandă
‫Docker Compose este de fapt separat de instrumentul Docker.
‫Este de fapt un binar separat. Dacă sunteți pe Docker pentru Windows sau Docker for Mac,
‫de fapt, vine cu acest pachet.
‫Dacă utilizați, de asemenea, cutia de instrumente în Windows 7, se leagă cu aceasta.
‫Dar dacă sunteți pe Linux, trebuie să îl descărcați separat și puteți obține acest lucru la GitHub. com / docker / compose, dar
‫îl puteți căuta și pe Google și va exista un link în referințele pentru
‫această secțiune.
‫Dar ar trebui să spun foarte repede că nu este conceput ca un instrument de producție.
‫Este super ideal pentru dezvoltarea locală și testarea lucrurilor într-adevăr rapid, care altfel ar putea fi complexă pentru a tasta
‫o grămadă de comenzi din linia de comandă. Două comenzi obișnuite pe care le folosim vor
‫fi compilația docker-ului, ceea ce este, probabil, ceea ce veți tasta în 90% din timp.
‫E un magazin unic.
‫Este în principiu o singură comandă de a face totul în fișierul compose, inclusiv crearea de volume, crearea de rețele,
‫pornirea tuturor containerelor cu toate opțiunile de configurare. Apoi, pentru a curăța atunci când ați
‫terminat,
‫docker compune jos, pe care o mulțime de oameni uita de fapt, de
‫fapt, va curăța după tine. Se va elimina containerele, se vor elimina rețelele și volumele care nu mai sunt necesare.
‫Vă permite, cu aceste două comenzi, să sarăți rapid și să ieșiți din medii diferite pentru dezvoltare.
‫Acesta este locul unde primesc cu adevărat atenția dezvoltatorilor care sunt obișnuiți să folosească instrumente vagabonte și alte
‫instrumente pentru a personaliza mediile complicate la nivel local pe care trebuie să le dezvolte.
‫Odată ce le-am arătat Docker Compose și fișierul de compunere și cât de ușor este de folosit împreună cu un fișier
‫Docker, începe cu adevărat să le dai clic pe ele că ar putea fi o modalitate mai bună și o modalitate mai sigură de a
‫configura mediile lor.
‫Și nu necesită timp pentru a configura diferite
‫VM-uri sau complexitatea de a gestiona un mediu mașină virtuală.
‫Doar pentru a vă oferi un gust mic, dacă ați avea un proiect în care ați avut noul tipic proces de dezvoltare la bord, care
‫a fost vorba despre învățarea cum să obțineți instrumentele potrivite pentru sistemul lor, precum și mașinile virtuale virtuale descărcate
‫și cele mai potrivite add-on-uri și toate lucrurile pe care în mod normal ar trebui să le
‫construiască pentru mediul replicat, cu Docker Compose, este la fel
‫de ușor ca și clonarea mediului care conține fișierul dvs. de compozit de la un anumit repo undeva și apoi execută
‫comanda de compilare a docului.
‫Poate fi atât de ușor.
‫Hai să intrăm și să ne jucăm. Sunt în eșantionul de compoziție 2. Compoziția eșantionului 1 a fost pur
‫și simplu câteva exemple vizuale pe care le-am arătat în ultima lecție.
‫Dar, în acest caz, vom putea să o executăm și să obținem o ieșire rapidă.
‫Voi face doar un docier să se compună.
‫Ei bine, de fapt, înainte să facem asta, permiteți-mi să vă arăt doar ce este.
‫Aceasta are două servicii sau două contacte, iar primul este un server Nginx care este configurat ca
‫proxy în acest caz.
‫Și asta va fi ascultat pe portul meu 80 pe mașina mea locală.
‫Veți observa că există o comandă de volum acolo unde am făcut o montare de bind într-un fișier din acest director
‫numit fișier de configurare nginx și este într-adevăr un fișier foarte simplu.
‫Nu este neapărat important să știm cum funcționează încă fișierul. Arată doar cum, în acest caz,
‫de fapt, iau un fișier în mediul meu local. Să presupunem că acest director este un depozit
‫Git care stochează aceste fișiere de configurare pentru mine. Îmi permite să cartografiază acel fișier în container și de fapt, la
‫sfârșit, veți vedea că se spune că "ro" înseamnă doar citire, adică nu pot să îl schimb în container.
‫Nu este neapărat necesar aici. Am vrut doar să vă arăt
‫că așa veți face în acest caz. Acest fișier de configurări îi spune lui
‫Nginx, "în loc să
‫fiu un server web, aș vrea să fii un proxy invers și să stai în fața unui alt
‫server", care în acest caz sunăm serverul nostru web, cu serviciul său numele și rulează serverul Apache 2, care este imaginea httpd din
‫depozitul oficial al imaginilor de pe Docker Hub.
‫De asemenea, puteți vedea, în partea de sus, că am specificat o versiune aici. Așa aș face asta.
‫În interiorul liniei imaginii.
‫Deci, ce ar trebui să se întâmple este când scriu acest docer compun, ar trebui să pornească ambele containere. Ar trebui să creeze o rețea
‫privată pentru cei doi.
‫Acesta va lega automat montarea acelui fișier.
‫Va deschide portul și va începe să vândă jurnalele pe ecranul meu.
‫Veți vedea cum există, a spus el, "crearea acestor două containere. "Este de fapt
‫crearea rețelei.
‫Veți observa în fișierul meu, nu am specificat o zonă a rețelelor sau o zonă de volum, deoarece acestea nu sunt
‫de fapt necesare.
‫Sunt necesare numai dacă trebuie să fac anumite lucruri personalizate în rețea, ca de exemplu schimbarea adreselor
‫IP implicite sau modificarea driverului de rețea utilizat.
‫Sau în cazul volumelor, pot să creez volumele numite sau să folosesc un driver de volum diferit și vom intra
‫în toate acestea mai târziu în secțiuni avansate.
‫Doar așa știi, așa pot fi simple aceste fișiere.
‫În mod normal, nu ai nevoie de toate chestiile astea.
‫Aceste caracteristici sunt acolo dacă aveți nevoie de ele, dar, de obicei, aceste comenzi foarte simple, mici, cum ar fi acestea, vă
‫vor face să mergeți.
‫Ce am facut? Acesta este acum serverul meu Apache și serverul meu Nginx.
‫Veți observa că busiile sunt de fapt colorate aici.
‫Aceasta este o caracteristică elegantă de a compune că nu este neapărat
‫scoateți-of-the-box cu Docker este că va log toate containerele pe care rulează pe ecran în prim-plan.
‫Pot întotdeauna să fac același lucru ca mine cu Docker și să conduc docul compun
‫până -d, care îl va rula în fundal. Dar e drăguț să vezi când dezvolte sau testez lucrurile pe plan local,
‫că mi-am luat jurnalele chiar pe ecran.
‫Dacă trec la browserul meu și apoi merg la localhost, vei vedea că se spune: "Funcționează. "De fapt,
‫serverul Apache răspunde, nu serverul Nginx.
‫De fapt, traficul trece prin proxy-ul invers Nginx.
‫Se repetă traficul către serverul Apache. Serverul Apache răspunde cu fișierul HTML
‫de bază implicit, deoarece nu am schimbat nimic.
‫Apoi Nginx-ul o repetă înapoi.
‫Deci, este serverul dvs. web de bază, configurația proxy web.
‫Puteți spune că traficul a lovit ambele. Ei lucrează de fapt prin proxy
‫deoarece proxy-ul
‫este de fapt o culoare diferită aici. Buștenii sunt pompați aici cu o culoare aleatorie pentru fiecare recipient din configurația mea, astfel încât
‫să văd cu ușurință ce se întâmplă.
‫Dacă am lovit de câteva ori reîmprospătarea, ați vedea traficul apărut. Apoi apare mai întâi serverul proxy și apoi
‫serverul de backend web.
‫Dacă aș fi vrut să opresc aici, aș fi lovit Controlul c pentru a opri compunerea pe ecranul meu.
‫De fapt, aș putea rula din nou cu -d pentru a rula în fundal.
‫Puteți vedea aici că o pot reîmprospăta și că e încă acolo. Pot să fac un docer compune jurnale pentru a vedea aceeași ieșire din jurnalele pe
‫care le-am văzut cu ceva timp în urmă.
‫Multe dintre comenzile cu care ați putea fi utilizate în Docker sunt, de asemenea, în Docker Compose. Într-adevăr ceea ce face
‫Compose este doar că vorbesc cu API-ul Docker
‫în fundal, în numele CLI-ului Docker. Este un fel de înlocuitor pentru CLI-ul Docker care încă mai
‫vorbește cu API-ul serverului Docker din backend.
‫Bineînțeles, marele ajutor de aici, docker-ul compune ajutor, îmi arată toate comenzile pe care le pot rula.
‫Veți vedea că multe dintre acestea arată foarte familiar, deoarece sunt
‫echivalente cu comanda docker, folosind doar contextul configurației fișierului compose.
‫Vreau să curăț toate aceste lucruri, pentru că încă mai fug. Pot să fac un documentar aici, care să-mi arate că
‫ambele containere se mișcă.
‫Pot să fac un doc de compunere de top pentru a lista de fapt toate serviciile care se execută în interiorul
‫lor într-o ieșire frumos formatate.
‫E foarte cool.
‫Apoi, în cele din urmă, pot să fac un compozitor pentru a opri și a curăța lucrurile pe care tocmai am început.
‫Veți vedea că îmi spuneți ce sa întâmplat acolo. A curățat totul.
‫Asa de bine.
‫Acesta este doar un mic gust.
‫Vom folosi Docker Compose mult în restul acestui curs
‫pentru dezvoltarea locală și testare. Apoi vom continua să folosim fișierele Docker Compose în timp
‫ce trecem în preocupările legate de producție pentru modul în care implementăm medii complexe cu un simplu fișier YAML.