VM يا Docker؟

ڪيئن سمجھجي ته توھان کي ضرورت آھي Docker ۽ نه VM؟ توهان کي اهو طئي ڪرڻو پوندو ته توهان ڇا کي الڳ ڪرڻ چاهيو ٿا. جيڪڏهن توهان گارنٽيڊ وسيلن ۽ ورچوئل هارڊويئر سان سسٽم کي الڳ ڪرڻ چاهيو ٿا، ته پوءِ چونڊ کي VM تي ٿيڻ گهرجي. جيڪڏهن توهان کي الڳ ڪرڻ جي ضرورت آهي هلندڙ ايپليڪيشنن کي الڳ الڳ سسٽم پروسيس جي طور تي، توهان کي ضرورت پوندي Docker.

پوء Docker ڪنٽينرز ۽ VMs جي وچ ۾ ڇا فرق آهي؟

مجازي مشين (VM) هڪ ورچوئل ڪمپيوٽر آهي جنهن ۾ سڀني ورچوئل ڊوائيسز ۽ هڪ ورچوئل هارڊ ڊسڪ آهي، جنهن تي ورچوئل ڊيوائس ڊرائيورز، ميموري مئنيجمينٽ ۽ ٻين حصن سان گڏ هڪ نئون آزاد او ايس نصب ٿيل آهي. اهو آهي، اسان کي فزيڪل هارڊويئر جو خلاصو ملي ٿو جيڪو توهان کي هڪ ڪمپيوٽر تي ڪيترن ئي ورچوئل ڪمپيوٽرن کي هلائڻ جي اجازت ڏئي ٿو.
هڪ نصب ٿيل VM مختلف طريقن سان ڊسڪ اسپيس وٺي سگھي ٿو:

  • مقرر ٿيل هارڊ ڊسڪ اسپيس، جيڪا مجازي هارڊ ڊسڪ تائين تيز رسائي جي اجازت ڏئي ٿي ۽ فائل جي ٽڪراءَ کان بچي ٿي؛
  • متحرڪ ياداشت مختص. اضافي ايپليڪيشنن کي انسٽال ڪرڻ وقت، ميموري متحرڪ طور تي انهن لاءِ مختص ڪئي ويندي جيستائين اها ان کي مختص ڪيل وڌ کان وڌ رقم تائين پهچي.

سرور تي جيتريون وڌيڪ ورچوئل مشينون، اوترو ئي وڌيڪ جاءِ وٺنديون آهن، ۽ توهان جي ايپليڪيشن کي ڪم ڪرڻ لاءِ گهربل ماحول جي مسلسل حمايت جي ضرورت هوندي آهي.

Docker ڪنٽينرز تي ٻڌل ايپليڪيشنون ٺاهڻ لاءِ هڪ سافٽ ويئر آهي. ڪنٽينر ۽ ورچوئل مشينون ساڳيا فائدا آهن، پر مختلف ڪم ڪن ٿيون. ڪنٽينر گهٽ جاء وٺن ٿا، ڇاڪاڻ ته وي ايم جي ڀيٽ ۾ ميزبان سسٽم جي وڌيڪ حصيداري وسيلن کي استعمال ڪريو، ڇاڪاڻ ته VM جي برعڪس، OS سطح تي ورچوئلائيزيشن مهيا ڪري ٿي، نه هارڊويئر. اهو طريقو گهٽ ميموري فوٽ پرنٽ، تيزيءَ سان لڳائڻ، ۽ آسان اسڪيلنگ مهيا ڪري ٿو.

ڪنٽينر ميزبان سسٽم کي ضروري انٽرفيس مهيا ڪندي ايپليڪيشنن کي گڏ ڪرڻ لاءِ وڌيڪ موثر ميڪانيزم فراهم ڪري ٿو. هي خصوصيت ڪنٽينرز کي سسٽم جي بنيادي حصي کي حصيداري ڪرڻ جي اجازت ڏئي ٿي، جتي هر ڪنٽينرز کي مکيه OS جي هڪ الڳ عمل جي طور تي هلندو آهي، جنهن جي پنهنجي ميموري علائقن جي پنهنجي سيٽ آهي (ان جي پنهنجي مجازي ايڊريس اسپيس). جيئن ته هر ڪنٽينر جي ورچوئل ايڊريس اسپيس ان جي پنهنجي آهي، مختلف ميموري وارن علائقن سان تعلق رکندڙ ڊيٽا کي تبديل نٿو ڪري سگهجي.
ڊڪر لاءِ اصلي او ايس لينڪس آهي (ڊاڪر ونڊوز ۽ ميڪ او ايس تي پڻ استعمال ٿي سگهي ٿو)، اهو استعمال ڪري ٿو ان جا بنيادي فائدا، جيڪي ان کي ورهايل ڪنييل کي منظم ڪرڻ جي اجازت ڏين ٿا. ونڊوز تي ڊاڪر ڪنٽينرز جي لانچ لينڪس ورچوئل مشين جي اندر ٿيندي. ڪنٽينر ميزبان سسٽم جي او ايس کي حصيداري ڪندا آهن ۽ انهن لاءِ مکيه او ايس لينڪس آهي.

ڪنٽينر - اهو ڪيئن ڪم ڪندو آهي؟

ڪنٽرول ايپليڪيشن جي سطح تي هڪ خلاصو آهي جيڪو ڪوڊ ۽ انحصار کي گڏ ڪري ٿو. ڪنٽينر هميشه تصويرن مان ٺاهيا ويندا آهن، لکڻ جي قابل مٿين پرت کي شامل ڪندي ۽ مختلف پيٽرولن کي شروع ڪندي. ڇاڪاڻ ته هڪ ڪنٽينر جي پنهنجي لکڻ واري پرت آهي ۽ سڀئي تبديليون انهي پرت ۾ محفوظ ڪيون ويون آهن، ڪيترائي ڪنٽينر هڪ ئي ماسٽر تصوير تائين رسائي حصيداري ڪري سگهن ٿا.

هر ڪنٽينر کي فائل ذريعي ترتيب ڏئي سگهجي ٿو docker-compose پروجيڪٽ ۾ شامل مکيه حل، docker-compose.yml. اتي توھان سيٽ ڪري سگھوٿا مختلف پيٽرولر جھڙوڪ ڪنٽينر جو نالو، بندرگاھون، سڃاڻپ ڪندڙ، وسيلن جي حد، انحصار ٻين ڪنٽينرز جي وچ ۾. جيڪڏهن توهان سيٽنگون ۾ هڪ ڪنٽينر جو نالو نه ڏيو، پوء ڊاکر هر وقت هڪ نئون ڪنٽينر ٺاهيندو، ان کي بي ترتيب سان نالو تفويض ڪندي.

جڏهن هڪ ڪنٽينر هڪ تصوير مان شروع ڪيو ويندو آهي، ڊاکر پڙهڻ / لکڻ واري فائل سسٽم کي هيٺ ڏنل ڪنهن به پرت جي مٿان چڙهائي ٿو. هي اهو آهي جتي سڀئي عمل جيڪي اسان چاهيون ٿا ته اسان جو ڊاڪر ڪنٽينر هلندو.

جڏهن ڊڪر پهريون ڀيرو هڪ ڪنٽينر شروع ڪري ٿو، شروعاتي پڙهڻ / لکڻ واري پرت خالي آهي. جڏهن تبديليون ٿينديون آهن، اهي ان پرت تي لاڳو ٿين ٿيون. مثال طور، جيڪڏھن توھان ڪنھن فائل کي تبديل ڪرڻ چاھيو ٿا، ته اھو فائل ھيٺ ڏنل صرف پڙھڻ واري پرت مان پڙھي لکڻ واري پرت ۾ نقل ڪيو ويندو.
فائل جو صرف پڙهڻ وارو نسخو اڃا به موجود هوندو، پر هاڻي ڪاپي هيٺ لڪيل آهي. حجم ڊيٽا کي ذخيرو ڪرڻ لاء استعمال ڪيا ويا آهن، ڪنٽينر جي زندگي جي چڪر کان سواء. حجم شروع ڪيا ويا آهن جڏهن هڪ ڪنٽينر ٺاهي وئي آهي.

تصوير ڪيئن ڪنٽينر سان لاڳاپيل آهي؟

تصوير - هر ڪنٽينر لاء بنيادي عنصر. تصوير ٺاھي وئي آھي ھڪڙي ڊاکرفائل مان پروجيڪٽ ۾ شامل ڪئي وئي آھي ۽ فائل سسٽم جو ھڪڙو سيٽ آھي (پرت) ھڪ ٻئي جي چوٽي تي ۽ گڏ ڪيل گروپ، صرف پڙهڻ لاءِ دستياب آھي؛ تہن جو وڌ ۾ وڌ تعداد 127 آھي.

هر تصوير جي بنياد تي هڪ بنيادي تصوير آهي، جيڪا FROM ڪمانڊ طرفان بيان ڪئي وئي آهي - داخلا پوائنٽ جڏهن ڊاکرفائل تصوير ٺاهي ٿي. هر پرت هڪ پڙهڻي صرف پرت آهي ۽ هڪ واحد حڪم جي نمائندگي ڪئي وئي آهي جيڪا فائل سسٽم کي تبديل ڪري ٿي، هڪ Dockerfile ۾ لکيل آهي.
انهن پرتن کي هڪ واحد تصوير ۾ گڏ ڪرڻ لاءِ، ڊڪر استعمال ڪري ٿو ترقي يافته ملٽي ليئر يونين فائل سسٽم (AuFS يونين ايف ايس جي چوٽي تي ٺهيل آهي)، مختلف فائلن ۽ ڊائريڪٽرن کي مختلف فائلن جي پرتن مان شفاف طور تي اوورليپ ڪرڻ جي اجازت ڏئي ٿو، هڪ لاڳاپيل فائل سسٽم ٺاهي ٿو.

تہن ۾ ميٽاداٽا شامل آھن جيڪي توھان کي رن ٽائم ۽ تعمير وقت تي ھر پرت بابت لاڳاپيل معلومات ذخيرو ڪرڻ جي اجازت ڏين ٿيون. هر پرت ۾ ايندڙ پرت جي لنڪ هوندي آهي، جيڪڏهن پرت ۾ ڪا ڪڙي نه آهي ته پوءِ اها تصوير ۾ سڀ کان مٿانهين پرت آهي.

Dockerfile شايد حڪمن تي مشتمل هجن جهڙوڪ:

  • FROM - تصوير جي ٺهڻ ۾ داخلا پوائنٽ؛
  • سنڀاليندڙ - تصوير جي مالڪ جو نالو؛
  • RUN - تصوير جي اسيمبلي دوران حڪم تي عمل؛
  • ADD - ميزبان فائل کي نئين تصوير ڏانهن نقل ڪندي، جيڪڏهن توهان هڪ URL فائل بيان ڪيو، ڊڪر ان کي مخصوص ڊاريڪٽري ۾ ڊائون لوڊ ڪندو؛
  • ENV - ماحولياتي متغير؛
  • سي ايم ڊي - تصوير جي بنياد تي نئين ڪنٽينر جي پيدائش شروع ٿئي ٿي؛
  • ENTRYPOINT - حڪم تي عمل ڪيو ويندو آهي جڏهن ڪنٽينر شروع ڪيو ويندو آهي.
  • WORKDIR CMD ڪمانڊ تي عمل ڪرڻ لاءِ ڪم ڪندڙ ڊاريڪٽري آھي.
  • USER - تصوير مان ٺهيل ڪنٽينر لاءِ UID سيٽ ڪري ٿو.
  • حجم - ميزبان ڊاريڪٽري کي ڪنٽينر تي نصب ڪري ٿو.
  • EXPOSE بندرگاهن جو هڪ سيٽ آهي جيڪو ڪنٽينر ۾ ٻڌايل آهي.

يونين ايف ايس ڪيئن ڪم ڪندو آهي؟

يونين ايف ايس - سروس اسٽيڪ فائل سسٽم (FS) لينڪس ۽ فري بي ايس ڊي لاءِ. هي FS ڪاپي-آن-لکڻ (ڪاپي-آن-لکڻ، COW) ميڪانيزم کي لاڳو ڪري ٿو. يونين ايف ايس جو ڪم ڪندڙ يونٽ هڪ پرت آهي، هر پرت کي هڪ الڳ مڪمل فائل سسٽم طور سمجهيو وڃي ٿو جيڪو روٽ کان ڊائريڪٽري جي ترتيب سان. يونين ايف ايس ٻين فائل سسٽم لاءِ يونين مائونٽ ٺاهي ٿي ۽ توهان کي اجازت ڏئي ٿي ته مختلف فائل سسٽم (شاخ سڏجن ٿا) مان فائلن ۽ ڊائريڪٽرن کي شفاف طور تي هڪ واحد ڳنڍيل فائل سسٽم ۾ ضم ڪري، شفاف طور تي صارف ڏانهن.

ڊاريڪٽري جو مواد ساڳيون رستن سان گڏ ھڪڙي گڏيل ڊاريڪٽري ۾ ڏيکاريو ويندو (ساڳئي نالي جي جڳھ ۾) نتيجي ۾ فائل سسٽم جي.

UnionFS ھيٺين اصولن جي بنياد تي تہن کي گڏ ڪري ٿو:

  • انهن مان هڪ پرت مٿاهين سطح جي پرت بڻجي وڃي ٿي، ٻيو ۽ بعد ۾ پرتون هيٺين سطح جي پرت بڻجي وڃن ٿيون.
  • پرت جون شيون صارف تائين پهچن ٿيون ”مٿي کان هيٺ تائين“، يعني. جيڪڏهن گهربل اعتراض "مٿي" پرت ۾ آهي، اهو واپس ڪيو ويندو آهي، "هيٺيون" پرت ۾ ساڳئي نالي سان هڪ اعتراض جي موجودگي کان سواء؛ ٻي صورت ۾، "هيٺيان" پرت اعتراض واپس ڪيو ويندو؛ جيڪڏهن گهربل اعتراض نه آهي ۽ نه ئي اتي آهي، غلطي "نه اهڙي فائل يا ڊاريڪٽري" واپس ڪئي وئي آهي؛
  • ڪم ڪندڙ پرت ”مٿين“ هڪ آهي، يعني ڊيٽا کي تبديل ڪرڻ لاءِ صارف جا سڀئي عمل صرف مٿين سطح جي پرت تي ظاهر ٿيندا آهن، بغير هيٺين سطح جي پرت جي مواد کي متاثر ڪرڻ کان سواءِ.

ڊاکر ايپليڪيشن ڪم ۾ ڪنٽينرز استعمال ڪرڻ لاءِ سڀ کان وڌيڪ عام ٽيڪنالاجي آهي. اهو هن علائقي ۾ معيار بڻجي چڪو آهي، لينڪس ڪنيل پاران مهيا ڪيل سي گروپن ۽ نالن جي جڳهن تي تعمير.

Docker اسان کي اجازت ڏئي ٿو ته جلدي ايپليڪيشنن کي ترتيب ڏيو ۽ فائل سسٽم جو بهترين استعمال ڪندي سڀني ڪنٽينرز جي وچ ۾ او ايس ڪنيل کي حصيداري ڪندي، الڳ OS پروسيس جي طور تي هلندي.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو