Vodič za Dockere - Uvod u Docker i kontejnerizaciju

U ovom vodiču za Docker shvatit ćete potrebu za Dockerom i dobiti uvod u Docker. To je prvi blog iz Dockerove tutorial serije

Nadam se da niste propustili seriju ranijih blogova DevOps Tutorial. Prođite kroz ovdje.Neodrživi trend Docker kontejnera raste i organizacije traže profesionalce koji posjeduju .Sada ćemo vas ovaj put provesti kroz Uvod u Docker.

Vodič za Dockera

Ovaj Docker Tutorial blog pružit će vam konceptualnu i praktičnu izloženost Dockeru - novoj tehnologiji kontejnerizacije.





Na ovom blogu usredotočit ćemo se na sljedeće teme:

  • Što je virtualizacija?
  • Što je kontejnerizacija
  • Prednosti kontejnerizacije u odnosu na virtualizaciju
  • Uvod u Docker
  • Prednosti Dockera
  • Virtualizacija vs Kontejnerizacija
  • Instalacija Dockera
  • Dockerfile, Docker slika i Docker spremnik
  • Što je Docker Hub?
  • Docker arhitektura
  • Docker Compose

Docker stječe popularnost i njegova se upotreba širi poput požara. Razlog sve veće popularnosti Dockera je u kojoj se mjeri može koristiti u IT organizaciji. Vrlo mali broj alata ima funkcionalnost koja se može učiniti korisnom i programerima i administratorima sustava. Docker je jedan od takvih alata koji uistinu ispunjava svoja obećanja Izgraditi , Brod i Trčanje .



Jednostavnim riječima, Docker je softverska platforma za kontejnerizaciju, što znači da možete izraditi svoju aplikaciju, spakirati ih zajedno s njihovim ovisnostima u kontejner, a zatim se ti spremnici mogu lako otpremiti za rad na drugim strojevima.

Na primjer: Razmotrimo aplikaciju zasnovanu na Linuxu koja je napisana i na Rubyu i na Pythonu. Ova aplikacija zahtijeva određenu verziju linux, Ruby i Python. Da bi se izbjegli bilo kakvi sukobi verzija na kraju korisnika, može se stvoriti spremnik za linux docker s potrebnim verzijama Ruby i Python instaliranim zajedno s aplikacijom. Sada krajnji korisnici mogu lako koristiti aplikaciju pokretanjem ovog spremnika bez brige o ovisnostima ili sukobu verzije.

Ovi spremnici koriste kontejnerizaciju koja se može smatrati razvijenom verzijom virtualizacije. Isti se zadatak može postići i pomoću virtualnih strojeva, ali nije vrlo učinkovit.



U ovom trenutku uglavnom dobivam pitanje, tj. Koja je razlika između virtualizacije i kontejnerizacije? Ova su dva pojma međusobno vrlo slična. Pa, najprije da vam kažem što je virtualizacija?

Što je virtualizacija?

Virtualizacija je tehnika uvoza gostujućeg operativnog sustava povrh hostovskog. Ova je tehnika na početku bila otkriće jer je programerima omogućila pokretanje više operativnih sustava u različitim virtualnim strojevima koji svi rade na istom hostu. To je eliminiralo potrebu za dodatnim hardverskim resursima. Prednosti virtualnih strojeva ili virtualizacije su:

  • Na istom stroju može se izvoditi više operativnih sustava
  • Održavanje i oporavak bili su jednostavni u slučaju kvarova
  • Ukupni troškovi vlasništva također su bili manji zbog smanjene potrebe za infrastrukturom

Arhitektura virtualnih strojeva - Docker Vodič o uvodu u Docker - Edureka

Na dijagramu s desne strane možete vidjeti da postoji host operativni sustav na kojem rade 3 gostujuća operativna sustava što nije ništa drugo nego virtualni strojevi.

Kao što znate da ništa nije savršeno, virtualizacija također ima neke nedostatke. Pokretanje više virtualnih strojeva u istom operativnom sustavu hosta dovodi do pogoršanja performansi. To je zbog gostujućeg OS-a koji se izvodi na glavnom OS-u, koji će imati vlastiti kernel i skup knjižnica i ovisnosti. To zauzima velik dio sistemskih resursa, tj. Tvrdi disk, procesor i posebno RAM.

Sljedeći problem s virtualnim strojevima koji koriste virtualizaciju jest taj što pokretanje traje gotovo minutu.To je vrlo važno u slučaju aplikacija u stvarnom vremenu.

Slijede nedostaci virtualizacije:

  • Pokretanje više virtualnih strojeva dovodi do nestabilnih performansi
  • Hipervizori nisu toliko učinkoviti kao operativni sustav domaćina
  • Postupak podizanja sustava dug je i traje vrijeme

Ovi nedostaci doveli su do pojave nove tehnike nazvane Kontejnerizacija. Sad ću vam reći o kontejnerizaciji.

Što je kontejnerizacija?

Kontejnerizacija je tehnika dovođenja virtualizacije na razinu operativnog sustava. Dok virtualizacija donosi apstrakciju na hardver, Containerization donosi apstrakciju u operativni sustav. Imajte na umu da je kontejnerizacija također vrsta virtualizacije. Međutim, kontejnerizacija je učinkovitija jer ovdje nema gostujućeg OS-a i koristi operativni sustav hosta, dijeli relevantne knjižnice i resurse prema potrebi i za razliku od virtualnih strojeva. Binarne datoteke i knjižnice kontejnera specifične za aplikacije izvode se na jezgri domaćina, što obradu i izvršavanje čini vrlo brzom. Čak i pokretanje spremnika traje samo djelić sekunde. Budući da svi spremnici dijele, hostiraju operativni sustav i sadrže samo binarne datoteke i knjižnice povezane s aplikacijom. Lagani su i brži od virtualnih strojeva.

Prednosti kontejnerizacije u odnosu na virtualizaciju:

  • Spremnici na istom jezgru OS-a lakši su i manji
  • Bolja iskorištenost resursa u odnosu na VM-ove
  • Proces pokretanja je kratak i traje nekoliko sekundi

Na dijagramu s desne strane možete vidjeti da postoji operativni sustav domaćina koji dijele svi spremnici. Spremnici sadrže samo knjižnice specifične za aplikacije koje su odvojene za svaki spremnik, brže su i ne troše nikakve resurse.

Sa svim tim spremnicima obrađuje se sloj kontejnerizacije koji nije urođen u operativni sustav domaćina. Stoga je potreban softver koji vam omogućuje stvaranje i pokretanje spremnika na vašem operacijskom sustavu domaćina.

Pogledajte ovaj Docker tutorial video za dublje razumijevanje Dockera.

Docker Vodič za početnike | Što je Docker? | Alati DevOps | Edureka

Sada ću vas provesti kroz uvod u Docker.

Vodič za Dockera - Uvod u Docker

Docker je platforma za kontejnerizaciju koja vašu aplikaciju i sve ovisnosti pakira zajedno u obliku spremnika kako bi osigurala da vaša aplikacija radi bez problema u bilo kojem okruženju.

Kao što možete vidjeti na dijagramu s desne strane, svaka će se aplikacija izvoditi na zasebnom spremniku i imat će svoj vlastiti skup knjižnica i ovisnosti. To također osigurava izolaciju na razini procesa, što znači da je svaka aplikacija neovisna o drugim aplikacijama, pružajući programerima sigurnost da mogu graditi programe koji se neće međusobno ometati.

Kao programer, mogu izraditi spremnik na kojem su instalirane različite aplikacije i predati ga svom QA timu koji će trebati pokrenuti spremnik samo da bi replicirao razvojno okruženje.

Prednosti Dockera

Sada QA tim ne mora instalirati sav ovisni softver i aplikacije za testiranje koda, a to im pomaže uštedjeti puno vremena i energije. To također osigurava da radno okruženje bude konzistentno za sve pojedince koji su uključeni u proces, počevši od razvoja do uvođenja. Broj sustava može se lako povećati i kôd se na njih može bez napora rasporediti.

Virtualizacija vs Kontejnerizacija

I virtualizacija i kontejnerizacija omogućuju vam pokretanje više operativnih sustava unutar host računala.

Virtualizacija se bavi stvaranjem mnogih operativnih sustava u jednom glavnom računalu. S druge strane, kontejnerizacija će stvoriti više spremnika za svaku vrstu aplikacije prema potrebi.

Lik: Što je analitika velikih podataka - virtualizacija nasuprot kontejnerizaciji

Kao što vidimo sa slike, glavna razlika je u tome što u virtualizaciji postoji više gostujućih operativnih sustava koji u kontejnerizaciji nedostaju. Najbolji dio kontejnerizacije je što je vrlo lagan u usporedbi s teškom virtualizacijom.

Dopustite nam sada instalirati Docker.

Instalirajte Docker:

Instalirat ću Docker na svoj Ubuntu 17.10 stroj. Slijede koraci za instalaciju Dockera:

  1. Instalirajte potrebne pakete
  2. Postavljanje spremišta Docker
  3. Instalirajte Docker na Ubuntu

1. Instalirajte potrebne pakete:

Postoje određeni paketi koji su vam potrebni za instaliranje Dockera. Izvršite naredbu u nastavku da biste instalirali te pakete.

sudo apt-get instalirati curl apt-transport-https ca-certifikati software-properties-common

2. Postavljanje spremišta Docker:

Sada uvezite službeni GPG ključ Dockers-a da biste provjerili potpis paketa prije nego što ih instalirate pomoću apt-get. Na terminalu pokrenite donju naredbu:

je git i github isto
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key dodati

Sada dodajte spremište Docker na svoj Ubuntu sustav koji sadrži Docker pakete, uključujući njegove ovisnosti, za to izvršite naredbu u nastavku:

sudo add-apt-repozitorij 'deb [arch = amd64] https://download.docker.com/linux/ubuntu $ (lsb_release -cs) stabilan'

3. Instalirajte Docker na Ubuntu:

Sada morate nadograditi apt indeks i instalirati Docker izdanje zajednice, za to izvršiti naredbe u nastavku:

sudo apt-get ažuriranje sudo apt-get instalacija docker-ce

Čestitamo! Uspješno ste instalirali Docker. Također, pogledajte nekoliko često korištenih Dockerove naredbe .

Sada ćemo vidjeti nekoliko važnih Dockerovih koncepata.

Dockerfile, Docker slika i Docker spremnik:

  1. Docker slika stvara se nizom naredbi napisanih u datoteci koja se naziva Dockerfile.
  2. Kada se ova datoteka Docker izvrši pomoću naredbe docker, ona rezultira Docker slikom s imenom.
  3. Kada se ova Slika izvrši naredbom “docker run”, ona će sama pokrenuti bilo koju aplikaciju ili uslugu koju mora pokrenuti prilikom njenog izvršavanja.

Docker Hub:

Docker Hub je poput GitHub-a za Docker Images. To je u osnovi registar oblaka u kojem možete pronaći Docker slike koje su prenijele različite zajednice, također možete razviti vlastitu sliku i prenijeti ih na Docker Hub, ali prvo morate stvoriti račun na DockerHubu.

Docker arhitektura:

Sastoji se od Docker Engine-a koji je aplikacija klijent-poslužitelj s tri glavne komponente:

  1. Poslužitelj koji je vrsta dugotrajnog programa koji se naziva demon program (naredba docker).
  2. REST API koji određuje sučelja koja programi mogu koristiti za razgovor s demonom i uputu što treba učiniti.
  3. Klijent sučelja naredbenog retka (CLI) (naredba dockera).
  4. CLI koristi Docker REST API za kontrolu ili interakciju s Docker demonom putem skriptiranja ili izravnih CLI naredbi. Mnoge druge aplikacije Docker koriste temeljni API i CLI.

Pogledajte ovaj blog da biste pročitali više o .

Konačno, u ovom blogu Docker Tutorial govorit ću o Docker Compose.

Sastavi Docker:

Docker Compose se u osnovi koristi za pokretanje više Docker spremnika kao jedan poslužitelj. Dopustite mi da vam dam primjer:

Pretpostavimo ako imam aplikaciju koja zahtijeva WordPress, Maria DB i PHP MyAdmin. Mogu stvoriti jednu datoteku koja bi oba spremnika pokrenula kao uslugu bez potrebe za pokretanjem svakog zasebno. Stvarno je korisno pogotovo ako imate mikroservisnu arhitekturu.

Pogledajte moj blog na Docker kontejner kako bi razumio kako to praktično izvršiti.

Također, na ovom blogu možete pročitati kako možete sadržavati srednju aplikaciju stoga pomoću programa Docker Compose.

Ovim smo došli do kraja prvog bloga Docker Tutorial-a o Uvodu u Docker i kontejnerizaciju.

Pregledajte naš sljedeći blog na Dockeru:

Sad kad ste shvatili što je DevOps, pogledajte naš Edureka, pouzdana tvrtka za internetsko učenje s mrežom od više od 250 000 zadovoljnih učenika raširenih širom svijeta. Edureka DevOps certifikacijski tečaj pomaže učenicima da steknu stručnost u različitim DevOps procesima i alatima kao što su Lutka, Jenkins, Nagios, Ansible, Chef, Saltstack i GIT za automatizaciju više koraka u SDLC-u.

Imate pitanje za nas? Molimo spomenite to u odjeljku za komentare i javit ćemo vam se.