Sobes.tech
Junior

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.