Razlika između Dockerovih slika i spremnika

1. Pregled

Docker je alat za jednostavno stvaranje, postavljanje i pokretanje aplikacija. Omogućuje nam da pakiramo svoje aplikacije sa svim ovisnostima i distribuiramo ih kao pojedinačne pakete. Docker jamči da će se naša aplikacija pokretati na isti način na svakoj Docker instanci.

Kad počnemo koristiti Docker, postoje dva glavna pojma moramo biti načisto s - slike i spremnici.

U ovom uputstvu naučit ćemo što su i kako se razlikuju.

2. Docker slike

Slika je datoteka koja predstavlja zapakiranu aplikaciju sa svim ovisnostima potrebnim za pravilno pokretanje. Drugim riječima, mogli bismo reći da a Docker slika je poput Java klase.

Slike se grade u nizu slojeva. Slojevi se sastavljaju jedan na drugom. Pa, što je sloj? Jednostavno rečeno, sloj je slika.

Recimo da želimo stvoriti Dockerovu sliku aplikacije Hello World Java. Prvo o čemu moramo razmisliti je što je potrebno našoj aplikaciji.

Za početak je to Java aplikacija, pa će nam trebati JVM. U redu, čini se lako, ali što JVM treba za pokretanje? Potreban mu je operativni sustav. Stoga, naša Docker slika imat će sloj operativnog sustava, JVM i našu aplikaciju Hello World.

Glavna prednost Dockera je njegova velika zajednica. Ako se želimo nadovezati na sliku, možemo otići na Docker Hub i pretražiti je li slika koja nam je potrebna dostupna.

Recimo da želimo stvoriti bazu podataka, koristeći PostgreSQL bazu podataka. Ne trebamo stvoriti novu PostgreSQL sliku od nule. Samo idemo u Docker Hub, potražimo postgres, što je službeno ime Dockerove slike za PostgresSQL, odaberite verziju koja nam treba i pokrenite je.

Svaka slika koju kreiramo ili povučemo iz Docker Hub-a pohranjena je u našem datotečnom sustavu i identificirana je imenom i oznakom. Može biti i prepoznatljiv po id-u slike.

Koristiti dockerske slike naredbu, možemo pregledati popis slika koje imamo na raspolaganju u našem datotečnom sustavu:

$ listi slike repozitorij oznaka slike ID kreirana veličina Postgres prije 11.6 d3d96b1e5d48 4 tjedna 332MB Mongo najkasnije prije 9979235fc504 6 tjedna 364MB rabbitmq 3-upravljanje 44c4867e4a8b 8 tjedna prije 180MB MySQL 8.0.18 d435eee2caa5 prije 2 mjeseca 456MB JBoss / wildfly 18.0.1.Final bfc71fe5d7d1 Prije 2 mjeseca 757MB prelet / put 6.0.8 0c11020ffd69 prije 3 mjeseca 247MB java 8-jre e44d62cf8862 prije 3 godine 311MB

3. Pokretanje Docker slika

Slika se pokreće pomoću docker run naredba s imenom i oznakom slike. Recimo da želimo pokrenuti postgres 11.6 sliku:

docker run -d postgres: 11.6

Obavijest da smo dali -d opcija. To Dockeru govori da sliku pokreće u pozadini - također poznatoj kao odvojeni način rada.

Koristiti docker ps naredbu možemo provjeriti radi li naša slika trebali bismo koristiti ovu naredbu:

$ docker ps ID KONDENERA ID SLIKA ZAPOVIJED STVARANI STATUSI LUČNA IMENA 3376143f0991 postgres: 11,6 "docker-entrypoint.s ..." prije 3 minute Gore 3 minute 5432 / tcp tender_heyrovsky

Primijetite ID KONTEJNERA u gornjem izlazu. Pogledajmo što je spremnik i kako je povezan sa slikom.

4. Docker kontejneri

Spremnik je primjer slike. Svaki spremnik može se identificirati svojim ID-om. Vraćajući se našoj analogiji razvoja Jave, mogli bismo to reći spremnik je poput primjerka klase.

Docker definira sedam stanja za spremnik: stvorena, ponovno pokretanje, trčanje, uklanjanje, zastao, izašao, i mrtav. Ovo je važno znati. Budući da je spremnik samo primjerak slike, ne mora se izvoditi.

Sada razmislimo opet o trčanje naredba koju smo vidjeli gore. Rekli smo da se koristi za pokretanje slika, ali to nije potpuno točno. Istina je da trčanje naredba se koristi za stvoriti i početak novi spremnik slike.

Jedna velika prednost je što su spremnici poput laganih VM-ova. Njihovo ponašanje potpuno je izolirano jedno od drugog. To znači da možemo pokretati više spremnika iste slike, imajući svaki u različitom stanju s različitim podacima i različitim ID-ovima.

Mogućnost istodobnog pokretanja više spremnika iste slike velika je prednost jer nam omogućuje jednostavan način skaliranja aplikacija. Na primjer, razmislimo o mikrouslugama. Ako je svaka usluga zapakirana u Dockerovu sliku, to znači da se nove usluge mogu rasporediti kao spremnici na zahtjev.

5. Životni ciklus spremnika

Ranije smo spomenuli sedam stanja spremnika, sad, da vidimo kako možemo koristiti lučki radnik alat naredbenog retka za obradu različitih stanja životnog ciklusa.

Pokretanje novog spremnika zahtijeva od nas stvoriti to i onda početak to. To znači da mora proći stanje stvaranja prije nego što se može pokrenuti. To možemo učiniti izrađivanjem i eksplicitnim pokretanjem spremnika:

docker spremnik create: docker container start 

Ili to lako možemo učiniti s trčanje naredba:

pokretanje dockera:

Možemo zaustaviti aktivni spremnik, a zatim ga ponovo staviti u stanje rada:

docker pauza docker opozvati 

Pauzirani spremnik prikazuje status "Pauzirano" kao status kada provjeravamo procese:

$ docker ps KONTEJNER ID ZAPOVIJED SLIKE STVORENI STATUS LUČNA IMENA 9bef2edcad7b postgres: 11,6 "docker-entrypoint.s ..." prije 5 minuta Gore 4 minute (Pauza) 5432 / tcp tender_heyrovsky

Također možemo zaustaviti pokrenut spremnik, a zatim ga ponovno pokrenuti:

docker stop docker start 

I na kraju, možemo ukloniti spremnik:

dock kontejner rm 

Ukloniti se mogu samo spremnici u zaustavljenom ili stvorenom stanju.

Za više informacija o naredbama Docker možemo se pozvati na Referencu naredbe Docker naredbe.

6. Zaključak

U ovom smo članku razgovarali o Dockerovim slikama i spremnicima i o tome kako se razlikuju. Slike opisuju aplikacije i kako ih je moguće pokrenuti. Spremnici su primjerci slike, gdje se može pokrenuti više spremnika iste slike, svaki u različitom stanju.

Također smo razgovarali o životnom ciklusu spremnika i naučili osnovne naredbe za upravljanje njima.

Sad kad znamo osnove, vrijeme je da naučimo više o uzbudljivom svijetu Dockera i počnemo povećavati svoje znanje!


$config[zx-auto] not found$config[zx-overlay] not found