Dockerizacija je redefinirala proces implementacije i automatizacije u softverskoj industriji. Od svog nastanka, Docker tim neprestano nastoji učiniti automatiziranu implementaciju besprijekornom. Tehnologija kontejnerizacije ne samo da omogućuje brzi razvoj aplikacija i učinkovitost, već i štedi vrijeme i napor. Neusporedive funkcionalnosti kao što su orkestracija, definiranje i pokretanje aplikacija s više kontejnera zajedno čine Docker omiljenim izborom za programere.
Docker kontejneri i slike
Dok zaranjate u dublje razumijevanje Dockera, bitno je ponoviti osnove. Razumijevanje načina na koji Docker radi može biti škakljivo ako nemate iskustva u radu s njim. U ovom odjeljku definirat ćemo nekoliko pojmova koji su ključni za početnike. Ako smatrate da ste upoznati s ovim pojmovima, slobodno ih preskočite i prijeđite na sljedeći odjeljak. Također možete pogledati naš sveobuhvatni vodič koji objašnjava temeljne Docker koncepte.
-
Docker slike
Docker slike su zbirka datoteka samo za čitanje. Nakon što stvorite Docker slike, ne možete ih mijenjati, iako je dopušteno brisanje. Koristimo Docker sliku za stvaranje jednog ili više Docker kontejnera prema našim potrebama. Da biste provjerili broj slika koje se izvode na vašem sustavu, upotrijebite naredbu:
|
1 |
$docker images |
Kada povlačite slike iz udaljenog registra kao što je Docker Hub, preuzimate datoteke i mape. Za povlačenje slike upotrijebite naredbu:
|
1 |
$docker pull (naziv of the slike) |
-
Docker kontejneri
Docker slike su nacrt za Docker kontejnere. Tehnički, Docker kontejner je instanca Docker slike. Zamislite, ako je Docker slika poput roditelja, onda je Docker kontejner dijete. Za razliku od Docker slika koje možete stvoriti jednom, možete stvoriti više kontejnera pomoću jedne slike. Da biste provjerili popis slika koje se izvode na vašem sustavu, upotrijebite naredbu:
|
1 |
$docker ps |
Za povlačenje kontejnera upotrijebite sljedeću naredbu:
|
1 |
$docker pull (naziv of the kontejnera) |
-
Kako rade Docker slike i kontejneri
Docker slike i kontejneri rade ruku pod ruku kako bi oslobodili potencijal Dockera. Pojedinačni kontejner gradi se pomoću Docker slike kroz naredbu run. Kada stvorite Docker kontejner, stvara se novi sloj poznat kao Container Layer. Novostvoreni sloj sadrži aplikaciju i njezine ovisnosti. Svaki kontejner koji stvorite ima različit Container Layer za čitanje/pisanje, a sve promjene napravljene u Docker kontejneru automatski se odražavaju na Container Layer. Zapamtite, ako odlučite izbrisati kontejner, izgubit ćete i Container Layer.
Pozdravite Docker Compose
Docker Compose je alat za upravljanje kontejnerima koji vam omogućuje konfiguraciju i orkestraciju svih vaših Docker kontejnera u jednu YAML datoteku. Pokretanje, zaustavljanje i stvaranje veza i volumena unutar kontejnera olakšani su ovim alatom.
-
Što radi Docker Compose?
Jednostavno rečeno, Docker Compose olakšava složene zadatke uklanjanjem konflikata i organizacijskih problema. Omogućuje korisnicima centralizirano upravljanje različitim Docker kontejnerima. Drugim riječima, umjesto da ima sve usluge u jednom velikom kontejneru, Docker Compose rastavlja uslugu na više usluga kako bi im korisnici mogli pristupiti i upravljati njima bez napora.
U ovom vodiču, provest ćemo vas kroz korake instalacije trenutne verzije Docker Composea za upravljanje aplikacijama s više kontejnera na CentOS-u 7. Također ćemo proći kroz neke osnovne naredbe koje su vam potrebne za uspješno korištenje softvera.
-
Kako koristiti Docker Compose
Korištenje Docker Composea iznimno je jednostavno, čak i za početnike. Pogledajmo proces u tri koraka koji uključuje Docker Compose:
1. Izgradnja: Najprije izgradite slike u Dockerfileu prema potrebama vašeg projekta ili ih eventualno povucite iz registra.
2. Definiranje: Zatim trebate definirati sve usluge komponenti u compose.yml datoteci.
3. Pokretanje: Nakon definiranja komponenti, vrijeme je za pokretanje pomoću docker-compose naredbe.
Preduvjeti
Prije nego što nastavimo s instalacijom Docker Composea na vaš CentOS poslužitelj, provjerite imate li:
- Jednog korisnika koji nije root sa sudo pristupom na CentOS 7 poslužitelju.
- Instaliran Docker na vašem računalu. Pogledajte ovaj vodič o tome kako instalirati i upravljati Dockerom na Ubuntu 18.04.
Sada ste spremni. Zatim slijedite korake u nastavku kako biste instalirali Docker Compose na CentOS 7.
Korak 1: Instalacija Docker Composea
Kako biste preuzeli najnoviju verziju Docker Composea, slijedite upute u Docker dokumentaciji i preuzmite binarne datoteke s Docker’ovog GitHub repozitorija. Provjerite imate li najnoviju verziju softvera pokretanjem naredbe u nastavku:
|
1 |
sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose |
Kako biste omogućili pokretanje binarne datoteke, postavite dopuštenja u nastavku:
|
1 |
sudo chmod +x /usr/local/bin/docker-compose |
Zatim potražite svoju verziju kako biste provjerili je li instalacija bila uspješna:
|
1 |
$docker-compose --version |
Kod u nastavku ispisat će instaliranu verziju:
Zatim možete pokrenuti “Hello World” primjer koristeći Docker Compose koji ste instalirali.
Korak 2: Korištenje Docker Composea za pokretanje spremnika
U Docker Hubu, javnom Docker registru, nalazi se slika “Hello World” koja se može koristiti za demonstraciju i testiranje. Ona prikazuje kako pokrenuti spremnik koristeći Docker Compose s minimalnom konfiguracijom. Prvo morate stvoriti direktorij za našu YAML datoteku:
|
1 |
$mkdir hello-world |
Zatim prijeđite u ovaj direktorij:
|
1 |
$cd hello-world |
Zatim, koristeći svoj omiljeni uređivač teksta, generirajte YAML datoteku. U ovom vodiču koristit ćemo Vi:
|
1 |
$vi docker-compose.yml |
Pritisnite i kako biste ušli u način umetanja, a zatim upišite ovo u datoteku:
|
1 2 |
my-test: image: hello-world |
U naziv spremnika bit će ugrađen prvi redak. Drugi redak upućuje program koju sliku treba koristiti za stvaranje spremnika. docker-composeup će potražiti lokalnu sliku pod nazivom hello-world kako bi provjerio je li dostupna kada upišete naredbu. Za izlazak iz načina umetanja pritisnite ESC. Zatim unesite :x i pritisnite ENTER kako biste spremili i zatvorili datoteku. Naredba docker images može se koristiti za ručnu provjeru slika na vašem računalu:
|
1 |
$ sudo docker images |
Prikazuju se samo zaglavlja stupaca kada uopće nema lokalnih slika:
Za stvaranje spremnika pokrenite ovu naredbu dok ste još u direktoriju /hello-world:
|
1 |
$sudo docker-compose up |
Kada pokrenete naredbu prvi put, a lokalna slika pod nazivom hello-world ne postoji, ona će se preuzeti iz Docker Hub repozitorija:
Kako bi se osiguralo da instalacija radi, Docker Compose povlači sliku, gradi spremnik, povezuje ga i izvršava program hello:
Nakon toga prikazuje se ispis opisa onoga što je učinjeno:
Kada hello završi svoju zadaću, spremnik će se ugasiti i naredba se više neće izvršavati u spremniku. Zaglavlja stupaca prikazat će se pri pregledu aktivnih procesa. Međutim, spremnik hello-world neće biti na popisu jer trenutno ne radi:
|
1 |
$sudo docker ps |
Za prikaz svih spremnika, a ne samo trenutnih, koristite -a zastavicu:
|
1 |
$sudo docker ps -a |
Sada kada ste isprobali pokretanje spremnika, možete nastaviti s učenjem nekih od osnovnih naredbi Docker Composea.
Korak 3: Naredbe Docker Composea
Kako bismo vas uveli u rad s Docker Composeom, ovaj će odjeljak proći kroz osnovne naredbe koje pruža alat docker-compose. docker-compose je naredba koja radi na bazi pojedinačnih direktorija. Generiranjem jednog direktorija za svaki spremnik i jedne docker-compose.yml datoteke po direktoriju, možete pokrenuti više grupa Docker spremnika na istom računalu.
Do sada ste sami pokretali Docker Compose. Možete ga isključiti pritiskom na Ctrl-C. To omogućuje prozoru terminala prikaz poruka o ispravljanju pogrešaka. Međutim, preporučljivo je pokrenuti docker-compose kao uslugu kada radite u produkciji. Opcija -d može se koristiti kao jednostavan način da se to postigne:
|
1 |
docker-compose up -d |
Sada se docker-compose pokreće u pozadini. Vašom grupom Docker spremnika (bilo zaustavljenih ili pokrenutih) može se upravljati sljedećom naredbom:
|
1 |
$sudo docker-compose ps -a |
Stanje State spremnika bit će prijavljeno kao Exited ako je zaustavljen, kao što je prikazano u primjeru u nastavku:
Spremnik koji je trenutno pokrenut prikazat će:
|
1 2 3 4 |
Name Command State Ports --------------------------------------------------------------- nginx_nginx_1 nginx -g daemon off; Up 443/tcp, 80/tcp |
Možete prekinuti sve pokrenute Docker spremnike u istom direktoriju u kojem se nalazi docker-compose.yml datoteka koju ste koristili za pokretanje Docker grupe:
|
1 |
$docker-compose stop |
Napomena: Ako trebate prisilno ugasiti stvari, docker-compose kill je također dostupan.
U nekim slučajevima, Docker spremnici mogu spremiti svoje stare podatke unutra. Koristite naredbu rm za uklanjanje svih spremnika iz vaše grupe spremnika ako želite početi ispočetka:
|
1 |
$docker-compose rm |
Pokretanje bilo koje od ovih naredbi iz drugog direktorija osim onog u kojem se nalaze Docker spremnik i .yml datoteka rezultirat će porukom o pogrešci:
|
1 2 3 4 5 6 |
GREŠKA: Ne'mogu pronaći prikladnu konfiguracijsku datoteku u ovom direktoriju ili bilo kojem nadređenom direktoriju. Jeste li u the pravom direktoriju? Podržani nazivi datoteka: docker-compose.yml, docker-compose.yaml |
U ovom odjeljku pokrili smo osnove upravljanja spremnicima pomoću Docker Composea. Kao što je rečeno, u sljedećem odjeljku možete pristupiti Docker datotečnom sustavu i pokretati naredbe iz naredbenog retka unutar spremnika ako vam je potrebna dodatna kontrola nad vašim spremnicima.
Korak 4: Pristup datotečnom sustavu Docker spremnika
Moguće je pokrenuti naredbeni redak u spremniku i pristupiti datotečnom sustavu spremnika pomoću docker exec, što je alat naredbenog retka. Kao primjer, pokrenite “Hello World” i pogledajte koliko je vremena potrebno da se završi naredba docker exec. Za potrebe ovog vodiča može se koristiti Docker Hub slika Nginxa. Stvorite novi direktorij pod nazivom nginx i prijeđite u njega:
|
1 2 |
mkdir ~/nginx cd ~/nginx |
Sada biste trebali imati docker-compose.yml datoteku, koju možete otvoriti u uređivaču teksta:
|
1 |
vi docker-compose.yml |
Zatim u datoteku dodajte sljedeće:
|
1 2 |
nginx: image: nginx |
Vrijeme je za zatvaranje aplikacije. Za pokretanje Nginx spremnika u pozadini, koristite sljedeću naredbu:
|
1 |
$sudo docker-compose up -d |
Docker Compose će preuzeti Nginx sliku i pokrenuti spremnik u pozadini. Za nastavak, morat ćete unijeti CONTAINER ID. Možete pregledati sve trenutno pokrenute spremnike sa sljedećom naredbom:
|
1 |
$sudo docker ps |
Vidjet ćete sljedeće:
Ako želite promijeniti datotečni sustav unutar ovog spremnika, koristeći docker exec, upotrijebili biste jedinstveni ID spremnika (u ovom slučaju, f139d0d78ca7) za stvaranje ljuske unutar spremnika:
|
1 |
$sudo docker exec -it f139d0d78ca7 /bin/bash |
Interaktivni terminal može se otvoriti pomoću opcije -t, dok /bin/bash pruža spremniku bash ljusku. Ovo je bash upit koji ćete nakon toga vidjeti za spremnik:
|
1 |
root@b86b6699714c:/# |
Unutar vašeg spremnika pronaći ćete naredbeni redak. Ponovno pokretanje spremnika prepisat će sve promjene koje ste napravili, osim ako ne radite u direktoriju koji je spremljen kao dio podatkovnog volumena. Ako ste navikli raditi s Linux naredbenim retkom, trebali biste znati da se većina Docker slika proizvodi koristeći najosnovnije instalacije Linuxa.
Zaključak
Proveli smo vas kroz korake instalacije trenutne verzije Docker Composea za upravljanje aplikacijama s više spremnika na CentOS-u 7. Sposobnost Docker Composea da istovremeno pokreće i gasi veliki broj spremnika je impresivna. Prijelaz s predložaka na aplikacije traje nekoliko minuta. Stoga, ako vaš rad uključuje pokretanje više spremnika odjednom, držanje Docker Composea izvrsna je opcija. Ipak, to nije rješenje koje odgovara svima. Također možete pronaći neke bolje opcije, ovisno o vašim specifičnim potrebama, na primjer, Kubernetes.
Kako biste dodatno istražili moć Docker Composea, možete pogledati ove vodiče s našeg bloga:
- Postavljanje Laravela, Nginxa i MySQL-a pomoću Docker Composea
- Kako instalirati i konfigurirati Docker Compose na Ubuntu 20.04
Ugodan rad!






Komentari
Još nema komentara. Budite prvi.