Sobes.tech
Junior

Որ հիմնական հատկանիշների վրա է հիմնված Docker-ը։

sobes.tech AI

Պատասխան AI-ից

Բացառիկ առանձնահատկություններ Docker:

  • Պրոցեսների մեկուսացում: Կոնտեյներները բնույթով մեկուսացված են միմյանցից և հոստ համակարգից: Սա ապահովվում է Linux միջուկի մեխանիզմների միջոցով, ինչպիսիք են namespaces (PID, NET, IPC, MNT, UTS) և cgroups (ռեսուրսների սահմանափակման համար՝ CPU, հիշողություն, I/O):

  • Նկարներ (Images): Docker նկարը անփոփոխ, շերտավոր արխիվ է, որը պարունակում է ամեն ինչ՝ ծրագրի գործարկման համար՝ կոդ, գրադարաններ, կախվածություններ, գործիքներ և կոնֆիգուրացիոն ֆայլեր: Նկարները կառուցվում են "շերտեր վերևից շերտեր" սկզբունքով, ինչը թույլ է տալիս կրկնօրինակի օգտագործում և տարածք խնայել:

  • Կոնտեյներներ (Containers): Կոնտեյներն են նկարի գործարկելի օրինակները: Դրանք թեթև, տրանսպորտային և պարունակում են գործարկված ծրագիրը: Կոնտեյներները կարող են արագ գործարկվել, կանգնեցնել, տեղափոխել և մասշտաբել:

  • Dockerfile: Dockerfile ֆայլը պարունակում է հրահանգների հավաքածու, որը նկարագրում է Docker նկարի կառուցման գործընթացը: Սա դեկլարատիվ մոտեցում է նկարների ստեղծմանը, որը ապահովում է վերարտադրելիություն և ավտոմատացում:

    # Օրինակ Dockerfile
    FROM alpine:3.14 // Հիմնական նկարը
    RUN apk add --no-cache nginx // Փաթեթների տեղադրում
    COPY html/ /usr/share/nginx/html/ // Ֆայլերի պատճենում
    EXPOSE 80 // Պորտի բացում
    CMD ["nginx", "-g", "daemon off;"] // Կոնտեյների գործարկման հրամանը
    
  • Շերտավոր ֆայլային համակարգ (Layered Filesystem): Docker-ը օգտագործում է Union File Systems (AUFS, OverlayFS), որոնք թույլ են տալիս ստեղծել նկարներ շերտերով: Ամեն շերտ ներկայացնում է փոփոխությունների հավաքածու նախորդ շերտի նկատմամբ: Այս հատկությունը թույլ է տալիս արագ ստեղծել նկարներ, կեշավորել շերտերը և արդյունավետ օգտագործել דיסքի տարածքը:

  • Docker ռեգիստր (Registry/Hub): Docker ռեգիստրները (օրինակ՝ Docker Hub, GCR, ACR) օգտագործվում են Docker նկարների պահեստավորման և տարածման համար: Սա թույլ է տալիս փոխանակել նկարները ծրագրավորողների, թիմերի և միջավայրերի միջև:

  • Տրանսպորտայինություն: Նկարներն ու կոնտեյներները նախագծված են լինել տրանսպորտային: Միևնույն ժամանակ, մեկ պլատֆորմում ստեղծված նկարն կարող է գործարկվել ցանկացած այլ պլատֆորմում, որտեղ տեղադրված է Docker-ը, առանց կախվածությունների վերանախագծման:

  • Արագ գործարկում: Կոնտեյների գործարկումը զգալիորեն արագ է, քան վիրտուալ մեքենայի գործարկումը, քանի որ չի պահանջվում ամբողջ օպերացիոն համակարգի բեռնաթափում:

  • Էֆեկտիվ օգտագործում ռեսուրսների: Կոնտեյներները ավելի արդյունավետ են օգտագործում հոստ համակարգի ռեսուրսները, քան վիրտուալ մեքենաները, քանի որ դրանք չեն պահանջում առանձնացնել հատուկ միջուկներ։