Երբ խոսքը վերաբերում է հավելվածների և մեկուսացման միջավայրերի տեղակայմանը, երկու առաջատար տեխնոլոգիաներ գերակշռում են տեսարանում՝ Docker և Virtual Machines (VMs): Երկուսն էլ հիանալի գործիքներ են ծրագրավորողների համար՝ ծրագրային հավելվածները կառավարելու համար, բայց ինչպե՞ս գիտեք, թե որն օգտագործել: Այս հոդվածը կհամեմատի Docker-ը և Virtual Machines-ը և կտա օրինակներ, թե ինչպես օգտագործել յուրաքանչյուրը:

Ի՞նչ է վիրտուալ մեքենան (VM):

Վիրտուալ մեքենան (VM) ընդօրինակում է համակարգչային համակարգը և հնարավորություն է տալիս միաժամանակ մի քանի օպերացիոն համակարգեր գործարկել մեկ մեքենայի վրա: VM-ների միջոցով մշակողները կարող են ստեղծել, փորձարկել և տեղակայել տարբեր հավելվածներ տարբեր միջավայրերում՝ առանց բազմաթիվ ֆիզիկական մեքենաների կարիքի:

VM-ները ապահովում են համակարգի մի ամբողջ ենթակառուցվածք, ներառյալ ամբողջական ՕՀ, վիրտուալացված ապարատային և ծրագրային հավելվածներ: Այս հատկությունը ստեղծում է ֆիզիկական համակարգչային համակարգի կատարյալ կրկնօրինակում, որը, չնայած համատեղելիության համար ձեռնտու է, կարող է հանգեցնել զգալի ծախսերի:

Դիտարկենք այս օրինակը. ենթադրենք, որ դուք ունեք Windows համակարգիչ, բայց պետք է գործարկեք ծրագիր, որը հասանելի է միայն Linux-ում: Նոր մեքենա գնելու փոխարեն դուք կարող եք օգտագործել VM, ինչպիսին է VirtualBox-ը կամ VMware-ը՝ ձեր Windows համակարգում Linux միջավայրը նմանակելու համար:

Ինչ է Docker-ը:

Մյուս կողմից, Docker-ը օգտագործում է կոնտեյներացման տեխնոլոգիա՝ հավելվածները և դրանց կախվածությունները ներառելու ինքնուրույն միավորի մեջ, որը կարող է աշխատել ցանկացած վայրում: Ի տարբերություն VM-ների, Docker կոնտեյներները չունեն ամբողջական OS, այլ կիսում են հյուրընկալող մեքենայի միջուկը, ինչը հանգեցնում է թեթև և արդյունավետ համակարգերի:

Օգտագործելով Docker-ը, մշակողները կարող են ապահովել հետևողական միջավայրեր՝ զարգացումից մինչև արտադրություն՝ հավելվածը և դրա կախվածությունները միացնելով Docker պատկերի մեջ, որն այնուհետև կարող է հետևողականորեն գործարկվել ցանկացած հարթակում, որն աջակցում է Docker-ին:

Եկեք օգտագործենք նույն սցենարը, ինչպես վերևում, բայց այս անգամ Docker-ի հետ: Ամբողջ Linux համակարգը նմանակելու փոխարեն Docker-ը թույլ կտա Ձեզ փաթեթավորել Linux հավելվածը և դրա կախվածությունները կոնտեյների մեջ: Այնուհետև այս բեռնարկղը կարող է գործարկվել անմիջապես ձեր Windows ապարատի վրա՝ առանց ամբողջական Linux օպերացիոն համակարգի ծախսերի:

Դոկերն ընդդեմ վիրտուալ մեքենաների. տարբերությունները