Na kojim ključnim osobinama se zasniva Docker?
sobes.tech АИ
Одговор од АИ
Ključne osobine Docker-a:
-
Izolacija procesa: Kontejneri su po svojoj prirodi izolovani jedni od drugih i od host sistema. To se obezbeđuje korišćenjem Linux mehanizama kao što su namespaces (PID, NET, IPC, MNT, UTS) i cgroups (za ograničavanje resursa CPU, memorije, I/O).
-
Slojevi (Images): Docker slika je nepromenljivi, slojeviti artefakt koji sadrži sve što je potrebno za pokretanje aplikacije: kod, biblioteke, zavisnosti, alate i konfiguracione fajlove. Slike se grade po principu "slojevi preko slojeva", što omogućava ponovnu upotrebu zajedničkih komponenti i štedi prostor.
-
Kontejneri (Containers): Kontejner je izvršni primerak slike. On je lagan, prenosiv i sadrži pokrenutu aplikaciju. Kontejneri se mogu brzo pokrenuti, zaustaviti, premestiti i skalirati.
-
Dockerfile: Dockerfile je fajl koji sadrži skup instrukcija koje opisuju proces izgradnje Docker slike. To je deklarativni pristup kreiranju slika koji obezbeđuje reproduktivnost i automatizaciju procesa.
# Primer Dockerfile-a FROM alpine:3.14 // Osnovna slika RUN apk add --no-cache nginx // Instalacija paketa COPY html/ /usr/share/nginx/html/ // Kopiranje fajlova EXPOSE 80 // Otvaranje porta CMD ["nginx", "-g", "daemon off;"] // Komanda pri pokretanju kontejnera -
Slojeviti fajl sistem (Layered Filesystem): Docker koristi Union File Systems (AUFS, OverlayFS), koji omogućavaju kreiranje slika od slojeva. Svaki sloj predstavlja skup promena u odnosu na prethodni sloj. Ova osobina omogućava brzo kreiranje slika, keširanje slojeva i efikasno korišćenje diskovnog prostora.
-
Docker Registry (Registry/Hub): Docker registri (npr. Docker Hub, GCR, ACR) se koriste za skladištenje i distribuciju Docker slika. To omogućava razmenu slika između developera, timova i okruženja.
-
Prenosivost: Slike i kontejneri su projektovani tako da budu prenosivi. Slika, izgrađena na jednoj platformi, može biti pokrenuta na bilo kojoj drugoj platformi gde je instaliran Docker, bez potrebe za ponovnim podešavanjem zavisnosti.
-
Brzi start: Pokretanje kontejnera je znatno brže od pokretanja virtuelne mašine, zahvaljujući odsustvu potrebe za učitavanjem celokupnog operativnog sistema.
-
Efikasno korišćenje resursa: Kontejneri koriste resurse host sistema efikasnije od virtuelnih mašina, jer ne zahtevaju izdvajanje posebnih jezgara operativnog sistema.