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.