Instalarea și utilizarea programului de andocare pe ubuntu

Docker-ul este un instrument excelent, dar pentru a profita din plin de el, fiecare componentă a aplicației trebuie să funcționeze în containerul propriu. Dacă aveți o aplicație complexă cu multe componente, va fi dificil să faceți toate containerele să înceapă și să se închidă împreună (ca să nu mai vorbim de mesajul dintre ele).







Comunitatea Docker a venit cu un instrument popular, numit Fig, care permitea utilizarea unui singur fișier YAML pentru a gestiona toate containerele și configurațiile Docker. Instrumentul a devenit atât de popular încât echipa Docker a hotărât în ​​cele din urmă să își creeze propria versiune, bazată pe Fig. Ei au numit noua lor dezvoltare Docker Compose. Pe scurt, simplifică gestionarea containerelor Docker (de exemplu, pornirea, închiderea și setarea legăturilor și a volumelor în containere).

După ce ați finalizat toți pașii descriși în acest articol, veți instala Docker și Docker Compose și veți avea o idee generală despre cum funcționează Docker Compose.

Docker și Docker Compune: Elemente de bază

Docker-images

Fiecare container Docker este o instanță locală a imaginii Docker. Imaginea Docker poate fi privită ca o instalare completă a sistemului Linux. În mod obișnuit, instalarea minimă presupune instalarea setului minim de pachete necesare pentru gestionarea imaginii. Aceste imagini utilizează kernelul sistemului de operare, dar deoarece funcționează în interiorul containerului Docker și văd doar propriul sistem de fișiere, este posibilă realizarea unei distribuții, de exemplu CentOS pe un sistem Ubuntu (sau invers).

Cele mai multe imagini Docker sunt distribuite prin Hubul Docker, susținut de comanda Docker. Cele mai populare proiecte publice au o imagine adecvată încărcată în Registrul Docker, pe care o puteți utiliza pentru a implementa software-ul. Dacă este posibil, este mai bine să luați imagini "oficiale", deoarece echipa Docker se asigură că respectă standardele Docker avansate.

Mesaj între imaginile Docker

Containerele Docker sunt izolate în mod prestabilit de la computerul gazdă. Aceasta înseamnă că, în mod prestabilit, computerul gazdă nu are acces la sistemul de fișiere din interiorul containerului Docker și nu are niciun mijloc de a comunica cu acesta prin rețea. Este clar că acest lucru complică configurația imaginii și lucrul cu imaginea din interiorul containerului Docker.

Docker oferă trei modalități principale de a rezolva această problemă. Primul și cel mai des întâlnit este să vă asigurați că Docker specifică variabilele de mediu care vor fi setate în interiorul containerului Docker. Codul care rulează în interiorul containerului Docker. apoi la pornire, verifică valorile acestor variabile de mediu și le folosește pentru configurația proprie.

O altă metodă comună este cantitatea de date Docker. Documentele magazinelor Docker sunt interne și comune. Containerele Docker funcționează în mod prestabilit, astfel încât, de fiecare dată când containerul este închis sau lansat, acesta nu își stochează datele. Se întoarce în statul în care era în momentul lansării. Acest lucru este bun pentru testare și dezvoltare, deoarece aveți garanția că veți lucra cu același mediu. Dar este rău în această situație, dacă speră că postările din blogul pe care le-ați scris în WordPress vor rămâne până la următoarea descărcare Docker.

Dacă specificați stocarea internă, atunci datele specificate pentru containerul Docker vor fi salvate între lansări. De exemplu, dacă doriți să vă asigurați că fișierele de jurnal sunt salvate între noile companii, puteți specifica spațiul de stocare intern al / var / log.

Seiful partajat afișează dosarul din interiorul containerului Docker din directorul de pe computerul gazdă. Acest lucru vă permite să transferați cu ușurință fișiere între containerul Docker și computerul gazdă, despre care vom vorbi în articol despre magazinul de date Docker.

Cerințe preliminare

Pentru a finaliza pașii din acest articol, veți avea nevoie de următoarele:

  • Ubuntu 14.04
  • Un utilizator non-root cu privilegii sudo

Pasul 1 - Instalați Docker-ul

Mai întâi, instalați Docker-ul, dacă nu este deja instalat. Cea mai rapidă modalitate de a instala Docker este să descărcați și să instalați scriptul de instalare (vi se va cere să introduceți parola sudo).







Această comandă încarcă și execută un mic script de instalare scris de comanda Docker. Dacă nu aveți încredere în scripturile terțelor părți sau doriți mai multe informații despre ceea ce face scenariul, consultați lecția privind instalarea și utilizarea programului Docker din DigitalOcean sau cu documentația de instalare de la Docker.

Lucrul cu Docker nu va fi ușor dacă utilizatorul dvs. nu este configurat corespunzător, astfel încât să adăugați utilizatorul dvs. la grupul de docere folosind următoarea comandă.

Pentru a activa grupuri noi, deconectați-vă și conectați-vă din nou la server.

Pasul 2 - Instalați modulul Docker Compose

Acum, când Docker-ul este instalat, să instalați programul Docker Compose. O condiție prealabilă este instalarea programului python-pip:

Apoi instalați programul Docker Compose:

Pasul 3 - Gestionarea containerului folosind Docker Compose

Docker Hub-ul (registrul Docker public) conține o imagine simplă Hello World. Acum, când avem instalat Docker Compose, să-l testăm cu acest exemplu foarte simplu.

Mai întâi, creați un director pentru fișierul YAML:

Apoi efectuați modificări în directorul:

Prima linie va fi utilizată ca parte a numelui containerului. A doua linie indică ce imagine să utilizeze pentru a crea recipientul. Imaginea va fi descărcată din depozitul oficial Docker Hub.

Nu părăsi catalogul

/ hello-world, executați următoarea comandă pentru a crea containerul:

Rezultatul ar trebui să înceapă după cum urmează:

Rezultatul explică apoi ce procedează Docker-ul:

  1. Clientul Docker a contactat daemonul Docker.
  2. Daemonul Docker a preluat imaginea "salut-lume" din Hubul Docker.
  3. Din această imagine, daemonul Docker a creat un nou container care execută executabilul, rezultând rezultatul pe care îl citiți acum
  4. Daemonul Docker a trimis acest rezultat clientului Docker, care l-a trimis terminalului.

Dacă procesul nu se închide, apăsați CTRL-C.

Acest test simplu nu demonstrează unul dintre principalele avantaje ale Docker Compose - capacitatea de a porni și închide simultan întregul grup de containere Docker.

Pasul 4 - Introducerea comenzilor Docker Compose

Să facem cunoștință cu comenzile acceptate de instrumentul de docking-compunere. Comanda docker-compose se bazează pe principiul "un director pe container". Puteți avea mai multe grupuri de containere Docker care rulează pe același computer - creați câte un director pentru fiecare container și un fișier doc-compose.yml pentru fiecare container din directorul său.

În timp ce am făcut docker-compune-te pe noi înșine și a folosit CTRL-C pe cont propriu. pentru a închide. Mesajele de depanare au fost afișate în fereastra terminalului. Cu toate acestea, acest lucru nu este foarte convenabil, dacă în timpul producției doriți ca docul-compune să acționeze mai mult ca un serviciu. Modul ușor de realizat este prin adăugarea pur și simplu a opțiunii -d:

docker-compose va intra acum în fundal

Pentru a afișa grupul de containere Docker (ambele oprite și difuzate), utilizați următoarea comandă:

De exemplu, acest lucru indică faptul că containerul helloworld_my-test_1 este oprit:

Pentru a opri toate containerele Docker care rulează din grupul de aplicații, executați următoarea comandă în același director ca fișierul docker-compose.yml. folosit pentru a porni grupul Docker:

Notă: comanda docker-compose kill este de asemenea posibilă dacă trebuie să închideți cu forța containerele.

În unele cazuri, containerele Docker stochează informații vechi în memoria internă. Dacă doriți să începeți de la zero, puteți utiliza comanda rm pentru a șterge complet toate containerele din grupul dvs. de containere:

Dacă încercați să executați oricare dintre aceste comenzi dintr-un director diferit de directorul care conține containerul Docker și fișierul .yml, acesta va afișa erori și nu vă va afișa containerele:

Pasul 5 - Accesul la sistemul de fișiere al containerului Docker (opțional)

Dacă trebuie să lucrați la un prompt de comandă în container, puteți utiliza comanda exec la doc.

Exemplu Hello World! se închide după executare, așa că trebuie să pornim un container care va continua să funcționeze astfel încât să putem folosi executorul docker pentru a accesa sistemul de fișiere al containerului. Să aruncăm o privire la imaginea Nginx din Hubul Docker.

Creați un director nou și efectuați o modificare a acestuia:

Creați un fișier docker-compose.yml în noul director:

și introduceți următoarele:

Salvați fișierul și ieșiți. Trebuie doar să pornim containerul Nginx ca proces de fundal cu următoarea comandă:

Imaginea Nginx va fi încărcată și containerul va fi pornit în fundal. Acum, pentru container, avem nevoie de un ID CONTAINER. Lista tuturor containerelor de lucru:

Veți vedea ceva de genul:

Notă: Comanda docker ps afișează o listă de containere care rulează numai.

Dacă vrem să facem schimbări în sistemul de fișiere din interiorul acestui container, i-am lua ID-ul (în acest caz - e90e12f70418) și cu docker exec vom executa shell-ul în interiorul containerului:

Opțiunea -t deschide terminalul, iar opțiunea -i o face interactivă. Opțiunea / bin / bash deschide bash shell-ul la containerul care rulează. Asigurați-vă că utilizați ID-ul containerului. Veți vedea o comandă similară pentru container:

Acum puteți lucra din linia de comandă. Cu toate acestea, rețineți că dacă nu vă aflați într-un director salvat ca parte a magazinului de date, modificările dvs. vor dispărea atunci când restarta containerul. Și încă una: că majoritatea imaginilor Docker sunt create cu o cantitate minimă de instalare Linux, astfel încât unele funcții și instrumentele liniei de comandă cu care vă obișnuiți pot să nu fie disponibile.

concluzie

Deci, am analizat elementele de bază ale Docker Compose și cum să le instalați și să o executați. Pentru o listă completă a opțiunilor de configurare pentru fișierul docker-compose.yml, consultați fișierul de ajutor Compuneți.







Articole similare

Trimiteți-le prietenilor: