Docker vodič za početnike: Osnove, Architekstura, kontejneri
⚡ Pametni sažetak
Docker je platforma za kontejnerizaciju koja pakira aplikacije i njihove ovisnosti u prenosive, lagane kontejnere. Ovaj pregled objašnjava arhitekturu Dockera, instalaciju na Ubuntu, bitne naredbe i kako se kontejneri razlikuju od tradicionalnih virtualnih strojeva za bržu isporuku softvera.

Docker je jedna od najpopularnijih platformi za kontejnerizaciju koja se koristi u modernom DevOps i tijekove rada u oblaku. Ovaj Docker vodič za početnike objašnjava što je Docker, kako funkcionira Docker arhitektura, kako instalirati Docker na Ubuntui osnovne naredbe koje se koriste za upravljanje slikama i spremnicima.
Što je Docker?
Lučki radnik je platforma za razvoj softvera za virtualizaciju koja omogućuje pokretanje više operativnih sustava na istom hostu. Pomaže vam odvojiti infrastrukturu od aplikacija kako biste mogli brzo isporučiti softver. Za razliku od hipervizora, koji se koriste za stvaranje virtualnih strojeva (VM-ova), Docker izvodi virtualizaciju na razini sustava pomoću jedinica koje se nazivaju Docker kontejneri.
Docker kontejneri se izvode preko glavnog operativnog sustava, kao što je prikazano na slici ispod. To poboljšava i učinkovitost i sigurnost. Također možete pokrenuti više kontejnera nego virtualnih strojeva na istoj infrastrukturi, jer kontejneri koriste manje resursa.

Za razliku od virtualnih strojeva, koji mogu izravno komunicirati s hardverom glavnog računala (na primjer, Ethernet adapter koji stvara više virtualnih adaptera), Docker kontejneri rade u izoliranom okruženju na glavnom operativnom sustavu. Čak i ako vaš glavni poslužitelj radi Windows, možeš trčati Linux slike unutar kontejnera uz pomoć Hyper-V, što automatski stvara mali VM za virtualizaciju osnovne slike.
Sada kada znate što je Docker, pogledajmo glavne razloge zašto ga timovi biraju.
Zašto koristiti Docker?
Evo ključnih razloga za korištenje Dockera:
- Docker je softver koji se koristi za virtualizaciju i omogućuje višestruke Operativnih sustava za pokretanje na istom hostu.
- Docker je klijent-poslužiteljska aplikacija, što znači da klijenti komuniciraju sa poslužiteljem.
- Docker slike djeluju kao "izvorni kod" za kontejnere; koristite ih za izgradnju.
- Docker podržava dvije vrste registara: javne i privatne.
- Kontejneri su organizacijske jedinice Dockera. Jednostavno rečeno, slika je predložak, a kontejner je kopija tog predloška, tako da možete pokrenuti više kontejnera iz iste slike.
Ove prednosti proizlaze iz načina na koji je Docker dizajniran. Sljedeći odjeljak analizira Dockerovu arhitekturu i njezine ključne komponente.
Lučki radnik Architektura
Sada, u ovom tutorijalu o Docker kontejnerima, pogledajmo glavne komponente Docker arhitekture.
Docker motor
Docker je klijent-poslužiteljska aplikacija, što znači da imamo klijente koji prenose zahtjeve poslužitelju. Dockerov daemon, nazvan dockerd, je Dockerov mehanizam koji predstavlja poslužitelj. Daemon i klijenti mogu se pokretati na istom ili udaljenom hostu i komuniciraju putem klijentske binarne datoteke naredbenog retka i punog RESTful API koji komunicira s dockerdom.
Docker slike
Docker slike su "izvorni kod" za naše kontejnere; koristimo ih za izgradnju kontejnera. Slike mogu imati unaprijed instaliran softver, što ubrzava implementaciju. Prenosive su i možete koristiti postojeće slike ili izraditi vlastite.
Docker registri
Docker pohranjuje slike koje gradimo u registre. Postoje javni i privatni registri. Docker ima javni registar pod nazivom Docker čvorište, gdje također možete privatno pohranjivati slike. Docker Hub ima milijune slika koje možete odmah početi koristiti.
Docker kontejneri
Kontejneri su organizacijske jedinice Dockera i jedan od njegovih osnovnih koncepata. Kada izgradimo sliku i pokrenemo je, pokrećemo je unutar kontejnera. Analogija s kontejnerom koristi se zbog prenosivosti softvera koji se izvodi unutar njega: možete ga premještati, "otpremati", mijenjati, upravljati, stvarati ili uništavati, baš kao što teretni brodovi rukuju pravim kontejnerima.
Jednostavno rečeno, slika je predložak, a spremnik je kopija tog predloška. Možete imati više spremnika (kopija) iste slike.
Interakcija između ovih različitih komponenti pokazuje kako Docker kontejnerska tehnologija funkcionira zajedno. Naredbe poput docker pull i docker run, koje ćemo kasnije obraditi, omogućuju vam upravljanje ovim radnim procesom.
Imajući arhitekturu na umu, instalirat ćemo Docker kako biste sami mogli isprobati ove komponente.
Kako instalirati Docker na Linux/Ubuntu
U nastavku slijedi detaljan postupak instalacije Dockera na Linuxu/Ubuntu:
Korak 1) Za instalaciju Dockera potrebni su vam DEB paketi Docker tima. Prvo, neki preduvjeti Ubuntu Potrebni su paketi. Upotrijebite donju naredbu za njihovu instalaciju.
$ sudo apt-get install \ apt-transport-https \ ca-certificates curl \ software-properties-common
*znak “\” nije potreban, koristi se za novi red, ako želite možete napisati naredbu bez korištenja “\” samo u jednom redu.
Korak 2) Dodajte službeni Docker GPG ključ s otiskom prsta. Upotrijebite donju Docker naredbu za unos GPG ključa.
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Korak 3) Zatim dodajte Docker APT repozitorij pomoću naredbe u nastavku.
$ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
Možda ćete biti upitani da potvrdite da želite dodati repozitorij i da se GPG ključ automatski doda vašem hostu. Naredba lsb_release trebala bi popuniti Ubuntu distribucijska verzija vašeg hosta.
Korak 4) Nakon dodavanja GPG ključa, ažurirajte APT izvore pomoću Docker naredbe u nastavku.
$ sudo apt-get update
Sada možete instalirati sam Docker paket.
Korak 5) Nakon što se APT izvori ažuriraju, počnite instalirati Docker pakete na Ubuntu pomoću dolje navedene Docker naredbe.
$ sudo apt-get install docker-ce
Gornja naredba instalira Docker i ostale potrebne pakete. Prije Dockera 1.8.0, naziv paketa bio je lxc-docker, a između Dockera 1.8 i 1.13, naziv paketa bio je docker-engine.
NAPOMENA: Docker za Windows Zahtijeva Windows 10 Pro ili Enterprise verzija 14393, ili Windows Server 2016 RTM, za pokretanje.
Kako koristiti Docker pomoću osnovnih Docker naredbi
Evo kako koristiti Docker s nekoliko osnovnih Docker naredbi.
Najosnovnija naredba koju biste trebali pokrenuti nakon instaliranja Dockera je docker info, kao što je ranije spomenuto.
$ sudo docker info
Trebali biste dobiti rezultat sličan sljedećem.
Kao što je prikazano u gornjem primjeru Dockera, možemo vidjeti informacije o Docker kontejnerima: koliko ih je pokrenuto, pauzirano ili zaustavljeno i koliko je slika preuzeto. Sada pogledajmo našu prvu sliku.
$ sudo docker pull alpine
Ovom naredbom govorimo Dockeru da preuzme sliku alpine, povlačeći je iz javnog registra u najnovijoj verziji, koja je postavljena prema zadanim postavkama.
*alpine je minimalna Docker slika temeljena na Alpine Linuxu s potpunim indeksom paketa i veličine samo 5 MB.
Ako želimo pokrenuti sliku kao kontejner, koristimo sljedeću naredbu.
$ sudo docker run -i -t alpine /bin/bash
Pokretanje naredbe šalje nas izravno na alpine terminal. Zastavica -i drži STDIN otvorenim iz kontejnera čak i kada niste spojeni na njega; ovaj trajni standardni ulaz je jedna polovica onoga što vam je potrebno za interaktivnu ljusku. Zastavica -t je druga polovica i upućuje Docker da dodijeli pseudo-tty kontejneru. Zajedno nam daju interaktivnu ljusku u novom kontejneru. Iz kontejnera izlazimo jednostavnom naredbom exit.
Sada, u ovom tutorijalu o osnovama Dockera, možemo pokušati pokrenuti Ubuntu slika.
$ sudo docker run -it ubuntu /bin/bash
Primijetite da Docker lokalno provjerava sliku i ako je nema, slika se automatski povlači iz biblioteke slika. Ponovno imamo interaktivnu ljusku koja radi. Također možemo imenovati kontejnere dok ih pokrećemo.
$ sudo docker run –-name our_container -it ubuntu /bin/bash
Zatim ponovno izlazimo. Također možemo pokrenuti kontejner koji smo prethodno kreirali bez interaktivne ljuske.
$ sudo docker start container_name
I zaustavljamo kontejner pisanjem docker stop container_name.
$ sudo docker stop container_name
Ako želimo vidjeti sve pokrenute kontejnere, jednostavno pokrećemo sljedeće.
$ docker ps
Za sve kontejnere dodajemo "-a" na kraj iste naredbe, kao što je docker ps -a. Ova naredba prikazuje ID kontejnera, koju sliku koristi, kada je kreiran, status izvođenja, izložene portove i nasumično generirano ime za lakše upravljanje.
Kada pokrećemo kontejnere, često želimo znati koliko resursa koriste. U tu svrhu možemo koristiti sljedeću naredbu.
$ docker stats
Također možete vidjeti koje ste slike preuzeli lokalno, zajedno s informacijama o njima.
$ sudo docker images
Naredba u gornjem primjeru Dockera prikazuje svaku Docker sliku s oznakom koja prikazuje verziju slike, prepoznatljivi ID slike, datum stvaranja i veličinu slike.
Kako bismo razumjeli zašto su kontejneri takvo poboljšanje, korisno je pogledati kako se virtualizacija razvijala.
Što je virtualizacija?
Prije je implementacija usluge bila spora i mukotrpna. Razvojni programeri bi pisali kod, a zatim bi ga operativni tim implementirao na računala bez ikakvih grešaka, gdje su morali paziti na verzije biblioteka, zakrpe i jezične kompajlere kako bi kod radio. Ako bi bilo grešaka ili grešaka, proces bi se ponavljao: razvojni programeri bi ispravili problem, a operativni tim bi ga ponovno implementirao.
Stvari su se poboljšale stvaranjem hipervizora. Hipervizori se pokreću na više virtualni strojevi, ili virtualnih strojeva, na istom hostu, koji mogu biti pokrenuti ili isključeni. Virtualni strojevi su uvelike smanjili vrijeme čekanja za implementaciju koda i ispravljanje grešaka, ali prava prekretnica bili su Docker kontejneri.
Dockerova popularnost je također potaknuta alatima za orkestraciju koji upravljaju kontejnerima u velikim razmjerima, kao što su KubernetesPrije nego što nastavimo, evo kratkog pregleda najvažnijih Docker naredbi.
Važne Docker naredbe
Ispod su važne Docker naredbe:
| naredba | Description |
|---|---|
| docker info | Zapovjedništvo informacija |
| doker povući | Preuzmite sliku |
| docker run -i -t ime_slike /bin/bash | Pokreni sliku kao spremnik |
| docker pokrenite naš_spremnik | Početni spremnik |
| docker zaustaviti naziv_spremnika | Zaustavite spremnik |
| dock ps | Popis svih pokrenutih kontejnera |
| docker statistika | Informacije o spremniku |
| slike dockera | Popis preuzetih slika |
| Čišćenje Dockera | Ubijte sve otvorene spremnike. |
Također, pročitajte i ove Pitanja i odgovori na razgovoru za posao dokera za početnike, kao i za iskusne profesionalce.

