Sobes.tech
Junior

Kokiose pagrindinėse savybėse remiasi Docker?

sobes.tech AI

Atsakymas iš AI

Pagrindinės Docker savybės:

  • Procesų izoliacija: Konteineriai pagal savo prigimtį yra izoliuoti vienas nuo kito ir nuo šeimininkų sistemos. Tai užtikrinama naudojant Linux branduolio mechanizmus, tokius kaip namespaces (PID, NET, IPC, MNT, UTS) ir cgroups (resursų ribojimui CPU, atminties, I/O).

  • Atvaizdai (Images): Docker atvaizdas yra nekintamas, sluoksniuotas artefaktas, kuris turi viską, kas reikalinga programos paleidimui: kodą, bibliotekas, priklausomybes, įrankius ir konfigūracijos failus. Atvaizdai kuriami pagal "sluoksnių virš sluoksnių" principą, leidžiantį pakartotinai naudoti bendrus komponentus ir taupyti vietą.

  • Konteineriai (Containers): Konteineris yra vykdomas atvaizdo pavyzdys. Jis yra lengvas, perkeliamas ir turi paleistą programą. Konteineriai gali būti greitai paleisti, sustabdyti, perkelti ir mastelio keisti.

  • Dockerfile: Dockerfile yra failas, kuriame yra instrukcijų rinkinys, apibūdinantis Docker atvaizdo kūrimo procesą. Tai deklaratyvus požiūris į atvaizdų kūrimą, užtikrinantis pakartojamumą ir automatizavimą.

    # Pavyzdinis Dockerfile
    FROM alpine:3.14 // Pagrindinis atvaizdas
    RUN apk add --no-cache nginx // Paketų įdiegimas
    COPY html/ /usr/share/nginx/html/ // Failų kopijavimas
    EXPOSE 80 // Atidaryti prievadą
    CMD ["nginx", "-g", "daemon off;"] // Komanda paleidus konteinerį
    
  • Sluoksniuota failų sistema (Layered Filesystem): Docker naudoja Union File Systems (AUFS, OverlayFS), kurie leidžia kurti atvaizdus iš sluoksnių. Kiekvienas sluoksnis yra pakeitimų rinkinys, palyginti su ankstesniu sluoksniu. Ši savybė leidžia greitai kurti atvaizdus, talpyklinti sluoksnius ir efektyviai naudoti disko vietą.

  • Docker registras (Registry/Hub): Docker registrai (pvz., Docker Hub, GCR, ACR) naudojami Docker atvaizdų saugojimui ir platinimui. Tai leidžia keistis atvaizdais tarp kūrėjų, komandų ir aplinkų.

  • Perkeliamumas: Atvaizdai ir konteineriai yra sukurti būti perkeliamais. Atvaizdas, sukurtas vienoje platformoje, gali būti paleistas bet kurioje kitoje platformoje, kur įdiegta Docker, be priklausomybių perkonfigūravimo.

  • Greitas paleidimas: Konteinerio paleidimas yra žymiai greitesnis nei virtualios mašinos paleidimas, nes nereikia įkelti visos operacinės sistemos.

  • Efektyvus išteklių naudojimas: Konteineriai efektyviau naudoja šeimininkės sistemos išteklius nei virtualios mašinos, nes nereikalauja atskirų branduolių skyrimo.