Sobes.tech
Junior

Kādas ir galvenās iezīmes, uz kurām balstās Docker?

sobes.tech AI

Atbilde no AI

Galvenās Docker iezīmes:

  • Procesu izolācija: Konteineri pēc savas dabas ir izolēti viens no otra un no hosta sistēmas. To nodrošina Linux kodola mehānismi, piemēram, namespaces (PID, NET, IPC, MNT, UTS) un cgroups (resursu ierobežošanai CPU, atmiņā, I/O).

  • Attēli (Images): Docker attēls ir nemainīgs, slāņots artefakts, kas satur visu nepieciešamo programmas palaišanai: kodu, bibliotēkas, atkarības, rīkus un konfigurācijas failus. Attēli tiek būvēti pēc "slāņu virs slāņiem" principa, kas ļauj atkārtoti izmantot kopīgās sastāvdaļas un taupīt vietu.

  • Konteineri (Containers): Konteineris ir izpildāms attēla piemērs. Tas ir viegls, pārnēsājams un satur palaistu programmu. Konteineri var tikt ātri palaisti, apturēti, pārvietoti un mērogojami.

  • Dockerfile: Dockerfile ir fails, kas satur instrukciju kopu, kas apraksta Docker attēla būvniecības procesu. Tas ir deklaratīvs pieejas veids attēlu veidošanai, kas nodrošina atkārtojamību un automatizāciju.

    # Piemērs Dockerfile
    FROM alpine:3.14 // Pamatattēls
    RUN apk add --no-cache nginx // Pakotņu instalācija
    COPY html/ /usr/share/nginx/html/ // Failu kopēšana
    EXPOSE 80 // Atvērt portu
    CMD ["nginx", "-g", "daemon off;"] // Komanda, palaist konteineru
    
  • Slāņota failu sistēma (Layered Filesystem): Docker izmanto Union File Systems (AUFS, OverlayFS), kas ļauj veidot attēlus no slāņiem. Katrs slānis ir izmaiņu kopums salīdzinājumā ar iepriekšējo slāni. Šī īpašība ļauj ātri veidot attēlus, kešēt slāņus un efektīvi izmantot diska vietu.

  • Docker reģistrs (Registry/Hub): Docker reģistri (piemēram, Docker Hub, GCR, ACR) tiek izmantoti Docker attēlu glabāšanai un izplatīšanai. Tas ļauj apmainīties ar attēliem starp izstrādātājiem, komandām un vidēm.

  • Pārvietojamība: Attēli un konteineri ir projektēti būt pārvietojami. Attēls, kas izveidots vienā platformā, var tikt palaists jebkurā citā platformā, kur ir uzstādīts Docker, bez atkarību pārkonfigurēšanas.

  • Ātrs palaišana: Konteineru palaišana ir ievērojami ātrāka nekā virtuālās mašīnas palaišana, jo nav nepieciešams ielādēt pilnu operētājsistēmu.

  • Efektīva resursu izmantošana: Konteineri efektīvāk izmanto hosta sistēmas resursus nekā virtuālās mašīnas, jo tie neprasa atsevišķu kodolu piešķiršanu.