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.

  • 🐳 Kontejnerizacija: Docker virtualizira na razini operativnog sustava, tako da kontejneri dijele jezgru hosta i koriste manje resursa od virtualnih strojeva.
  • 🧱 Architekstura: Dockerov mehanizam (dockerd), slike, registri i kontejneri tvore klijent-poslužiteljsku arhitekturu koja stoji iza svakog Docker tijeka rada.
  • ???? Slike i spremnici: Slika je predložak samo za čitanje, dok je kontejner kopija koja se izvršava, a jedna slika može pokrenuti mnogo kontejnera.
  • 🗄️ Registri: Docker Hub pohranjuje javne i privatne slike, pružajući vam milijune slika spremnih za korištenje za preuzimanje i pokretanje.
  • Instalacija: On Ubuntu Dodajete Docker APT repozitorij i GPG ključ, a zatim instalirate docker-ce paket s apt-get.
  • ⌨️ Osnovne naredbe: Upravljajte kontejnerima pomoću docker pull, run, start, stop, ps, stats i images naredbi iz naredbenog retka.

Docker tutorial za početnike koji pokriva arhitekturu i instalaciju Ubuntui osnovne naredbe kontejnera

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.

Virtualizacija u Dockeru nasuprot hipervizoru
Virtualizacija u Dockeru nasuprot hipervizoru

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.

Lučki radnik ArchiKomponente teksture: mehanizam, slike, registri i kontejneri

Lučki radnik Architektura

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.

Koristite Docker koristeći osnovne Docker naredbe, prikazujući izlaz informacija o Dockeru

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.

Pitanja i odgovori

Docker kontejner dijeli kernel glavnog operativnog sustava i izolira samo aplikaciju, pa je lagan i pokreće se za nekoliko sekundi. Virtualni stroj uključuje potpuni gostujući operativni sustav, što ga čini većim, sporijim za pokretanje i zahtjevnijim za resurse.

Dockerfile je skripta u običnom tekstu koja sadrži upute kao što su FROM, RUN, COPY i CMD. Docker čita te upute kako bi automatski izgradio sliku. Svaki redak dodaje sloj, omogućujući vam reprodukciju istog okruženja na bilo kojem računalu.

Docker Compose definira i pokreće aplikacije s više kontejnera koristeći jednu YAML datoteku. Svaku uslugu, mrežu i volumen opisujete jednom, a zatim sve pokrećete naredbom docker compose up. Idealan je za lokalni razvoj i testiranje povezanih usluga.

Docker gradi i pokreće pojedinačne kontejnere, dok Kubernetes orkestrira mnoge kontejnere unutar klastera. Kubernetes dodaje automatsko skaliranje, samoobnavljanje i uravnoteženje opterećenja. U praksi, Docker pakira aplikaciju, a Kubernetes njome upravlja u produkciji.

Docker Engine je besplatan i otvorenog koda pod licencom Apache 2.0. Docker Desktop je besplatan za osobnu upotrebu, obrazovanje i mala poduzeća, ali veće tvrtke trebaju plaćenu pretplatu. Docker Hub nudi i besplatne i plaćene planove za hosting slika.

Docker se izvorno pokreće na Linuxu i podržan je na Windows i macOS putem Docker Desktopa. Uključeno Windows i Mac, Docker koristi lagani virtualni stroj za pokretanje Linux kernela koji je potreban kontejnerima. Većina slika kontejnera temelji se na Linuxu.

AI asistenti generiraju Docker datoteke, docker-compose datoteke i CLI naredbe iz jednostavnih upita. Također čitaju zapisnike izgradnje i pogreške spremnika, objašnjavaju uzrok i predlažu rješenja. Uvijek pregledajte generiranu konfiguraciju za ispravne oznake slika, putanje i sigurnost prije pokretanja.

Da. GitHub kopilot i ChatGPT može izraditi Dockerfiles i Compose datoteke iz kratkog komentara ili opisa. Ubrzavaju standardni kod, ali trebali biste provjeriti osnovne slike, verzije i najbolje prakse jer generirani isječci mogu koristiti zastarjele zadane vrijednosti.

Sažmite ovu objavu uz: