سمجھڻ Docker

مان ڪيترن ئي مهينن کان ڊڪر استعمال ڪري رهيو آهيان ويب پروجيڪٽ جي ڊولپمينٽ/ترسيل جي عمل کي ترتيب ڏيڻ لاءِ. مان حب الوطن پڙهندڙن کي پيش ڪريان ٿو ڊڪر بابت تعارفي مضمون جو ترجمو - "سمجھڻ وارو ڊڪر".

ڊڪر ڇا آهي؟

Docker ترقي، پهچائڻ، ۽ آپريٽنگ ايپليڪيشنن لاء هڪ کليل پليٽ فارم آهي. Docker توهان جي ايپليڪيشنن کي تيزيءَ سان پهچائڻ لاءِ ٺهيل آهي. ڊاڪر سان، توهان پنهنجي ايپليڪيشن کي پنهنجي انفراسٽرڪچر مان ڊيڪپل ڪري سگهو ٿا ۽ انفراسٽرڪچر کي منظم ايپليڪيشن طور علاج ڪري سگهو ٿا. Docker توهان کي توهان جي ڪوڊ کي تيزيءَ سان موڪلڻ، تيزيءَ سان ٽيسٽ ڪرڻ، ايپليڪيشنن کي تيزيءَ سان موڪلڻ، ۽ ڪوڊ لکڻ ۽ رننگ ڪوڊ جي وچ ۾ وقت گهٽائڻ ۾ مدد ڪري ٿو. Docker اهو ڪري ٿو هڪ هلڪو وزن ڪنٽينر ورچوئلائيزيشن پليٽ فارم ذريعي، پروسيس ۽ افاديت استعمال ڪندي جيڪي توهان جي ايپليڪيشنن کي منظم ۽ ميزباني ڪرڻ ۾ مدد ڪن ٿيون.

ان جي بنيادي طور تي، ڊاکر توهان کي تقريبا ڪنهن به ايپليڪيشن کي هلائڻ جي اجازت ڏئي ٿو، محفوظ طور تي ڪنٽينر ۾ الڳ الڳ. محفوظ اڪيلائي توهان کي اجازت ڏئي ٿي ڪيترن ئي ڪنٽينرز کي هڪ ئي وقت تي هڪ ئي ميزبان تي. ڪنٽينر جي ٿلهي طبيعت، جيڪا بغير ڪنهن هائپر وائزر جي اضافي بوجھ جي هلندي آهي، توهان کي توهان جي هارڊويئر مان وڌيڪ حاصل ڪرڻ جي اجازت ڏئي ٿي.

ڪنٽينر ورچوئلائيزيشن پليٽ فارم ۽ اوزار هيٺين صورتن ۾ ڪارائتو ٿي سگهن ٿا:

  • توهان جي ايپليڪيشن کي پيڪيجنگ (۽ اجزاء جيڪي توهان استعمال ڪندا آهيو) ڊاکر ڪنٽينرز ۾؛
  • انهن ڪنٽينرز جي تقسيم ۽ ترسيل توهان جي ٽيمن کي ترقي ۽ جانچ لاءِ؛
  • انهن ڪنٽينرز کي توهان جي پيداوار جي سائيٽن تي رکڻ، ٻنهي ڊيٽا سينٽرن ۽ بادلن ۾.

مان ڇا لاءِ ڊڪر استعمال ڪري سگهان ٿو؟

جلدي شايع ڪريو پنھنجيون ايپليڪيشنون

ڊاڪر ڊولپمينٽ چڪر کي منظم ڪرڻ لاءِ وڏو آهي. Docker ڊولپرز کي اجازت ڏئي ٿو ته مقامي ڪنٽينرز کي هلائڻ جي ايپليڪيشنن ۽ خدمتن سان. جيڪو بعد ۾ توهان کي مسلسل انضمام جي عمل سان ضم ڪرڻ جي اجازت ڏئي ٿو ۽ ترتيب ڏيڻ واري ڪم جي فلو.

مثال طور، توهان جا ڊولپر مقامي طور ڪوڊ لکندا آهن ۽ انهن جي ڊولپمينٽ اسٽيڪ (ڊاڪر تصويرن جو هڪ سيٽ) ساٿين سان شيئر ڪندا آهن. جڏهن اهي تيار آهن، اهي ڪوڊ ۽ ڪنٽينرز کي ٽيسٽ سائيٽ ڏانهن ڌڪيندا آهن ۽ ڪنهن به ضروري ٽيسٽ کي هلائيندا آهن. ٽيسٽ سائيٽ تان، اهي موڪلي سگهن ٿا ڪوڊ ۽ تصويرون پيداوار ڏانهن.

آساني سان ترتيب ڏيڻ ۽ ظاهر ڪرڻ

ڊاکر ڪنٽينر تي ٻڌل پليٽ فارم توهان جي پيل لوڊ کي پورٽ ڪرڻ آسان بڻائي ٿو. Docker ڪنٽينر توهان جي مقامي مشين تي هلائي سگهن ٿا، يا ته حقيقي يا مجازي مشين تي ڊيٽا سينٽر ۾، يا ڪلائوڊ ۾.

ڊاکر جي پورٽيبلٽي ۽ ٿلهي طبيعت توهان جي ڪم لوڊ کي متحرڪ طور تي منظم ڪرڻ آسان بڻائي ٿي. توھان استعمال ڪري سگھوٿا ڊڪر پنھنجي ايپليڪيشن يا خدمتن کي ترتيب ڏيڻ يا بند ڪرڻ لاءِ. ڊاکر جي رفتار هن کي ويجهي حقيقي وقت ۾ ڪرڻ جي اجازت ڏئي ٿي.

وڌيڪ لوڊ ۽ وڌيڪ پيل لوڊ

Docker ٿلهي ۽ تيز آهي. اهو مهيا ڪري ٿو هڪ لچڪدار، قيمتي موثر متبادل هائپر ويزر تي ٻڌل ورچوئل مشينن لاءِ. اهو خاص طور تي ڪارائتو آهي تيز لوڊ ماحول ۾، مثال طور، جڏهن توهان پنهنجو ڪلائوڊ يا پليٽ فارم-جي-سروس ٺاهي رهيا آهيو. پر اهو پڻ مفيد آهي ننڍن ۽ وچولي سائيز جي ايپليڪيشنن لاءِ جڏهن توهان چاهيو ٿا ته توهان وٽ موجود وسيلن مان وڌيڪ حاصل ڪرڻ.

مکيه Docker اجزاء

Docker ٻن مکيه حصن تي مشتمل آهي:

  • Docker: هڪ کليل ذريعو ورچوئلائيزيشن پليٽ فارم؛
  • Docker Hub: Docker ڪنٽينرز کي ورهائڻ ۽ انتظام ڪرڻ لاءِ اسان جي پليٽ فارم جي طور تي هڪ خدمت.

نوٽ! Docker Apache 2.0 لائسنس تحت ورهايو ويو آهي.

ڊاکر فن تعمير

Docker استعمال ڪري ٿو ڪلائنٽ-سرور آرڪيٽيڪچر. Docker ڪلائنٽ ڊاڪر ڊيمن سان رابطو ڪري ٿو، جيڪو توهان جي ڪنٽينرز کي ٺاهڻ، هلائڻ ۽ ورهائڻ جو بار کڻندو آهي. ٻئي ڪلائنٽ ۽ سرور ساڳئي سسٽم تي هلائي سگهن ٿا، توهان ڪلائنٽ کي ريموٽ ڊاکر ڊيمن سان ڳنڍي سگهو ٿا. ڪلائنٽ ۽ سرور هڪ ساکٽ يا هڪ RESTful API ذريعي رابطو ڪري ٿو.

سمجھڻ Docker

ڊڪر ڊيمون

جيئن ڊاگرام ۾ ڏيکاريل آهي، ڊيمون ميزبان مشين تي هلندو آهي. صارف سڌو سنئون سرور سان رابطو نه ڪندو آهي، پر هن لاء ڪلائنٽ استعمال ڪندو آهي.

ڊڪر ڪلائنٽ

Docker ڪلائنٽ، ڊاکر پروگرام، Docker لاء مکيه انٽرفيس آهي. اهو صارف کان حڪم حاصل ڪري ٿو ۽ ڊاکر ڊيمن سان رابطو ڪري ٿو.

اندر ڊڪر

سمجھڻ لاءِ ته ڇا ڊڪر تي مشتمل آھي، توھان کي ٽن حصن بابت ڄاڻڻ جي ضرورت آھي:

  • تصويرون
  • رجسٽري
  • آهن

تصويرون

ڊاڪر تصوير صرف پڙهڻ لاءِ ٽيمپليٽ آهي. مثال طور، تصوير ۾ شامل ٿي سگھي ٿو Ubuntu آپريٽنگ سسٽم Apache سان ۽ ان تي هڪ ايپليڪيشن. تصويرون ڪنٽينر ٺاهڻ لاءِ استعمال ٿينديون آهن. Docker نئين تصويرون ٺاهڻ، موجوده تصويرون کي اپڊيٽ ڪرڻ، يا توهان ٻين ماڻهن پاران ٺاهيل تصويرون ڊائون لوڊ ڪرڻ آسان بڻائي ٿو. تصويرون هڪ ڊاکر تعمير جا حصا آهن.

رجسٽري

Docker رجسٽري تصويرون محفوظ ڪري ٿو. اتي سرڪاري ۽ نجي رجسٽريون آھن جن مان توھان تصويرون ڊائون لوڊ يا اپلوڊ ڪري سگھو ٿا. هڪ عوامي Docker رجسٽري آهي ڊاکر حب. اتي تصويرن جو هڪ وڏو مجموعو ذخيرو ٿيل آهي. جئين توهان ڄاڻو ٿا، تصويرون توهان جي طرفان ٺاهي سگهجن ٿيون يا توهان ٻين طرفان ٺاهيل تصويرون استعمال ڪري سگهو ٿا. رجسٽري هڪ تقسيم جزو آهي.

ڪنٽينر

ڪنٽينر ڊائريڪٽرن سان ملندڙ جلندڙ آهن. ڪنٽينرز ۾ ايپليڪيشن کي هلائڻ لاءِ گهربل هر شي شامل آهي. هر ڪنٽينر هڪ تصوير مان ٺهيل آهي. ڪنٽينرز ٺاهي سگھجن ٿيون، شروع ٿي سگھن ٿيون، بند ٿي سگھن ٿيون، لڏپلاڻ يا ختم ٿي سگھن ٿيون. هر ڪنٽينر الڳ ٿيل آهي ۽ ايپليڪيشن لاءِ محفوظ پليٽ فارم مهيا ڪري ٿو. ڪنٽينر ڪم جا حصا آهن.

پوء ڪيئن Docker ڪم ڪندو؟

هينئر تائين اسان ڄاڻون ٿا ته:

  • اسان تصويرون ٺاهي سگهون ٿا جن ۾ اسان جون ايپليڪيشنون واقع آهن؛
  • اسان ايپليڪيشنن کي هلائڻ لاءِ تصويرن مان ڪنٽينر ٺاهي سگهون ٿا؛
  • اسان Docker Hub يا ٻي تصويري رجسٽري ذريعي تصويرون ورهائي سگھون ٿا.

اچو ته ڏسو ته اهي اجزاء ڪيئن گڏ ٿين ٿا.

تصوير ڪيئن ڪم ڪري ٿي؟

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

انهن مان هڪ سبب آهي ته ڊاکر هلڪو وزن آهي ڇو ته اهو هن طرح جي پرت کي استعمال ڪري ٿو. جڏهن توهان تصوير تبديل ڪندا آهيو، جهڙوڪ ايپليڪيشن کي اپڊيٽ ڪرڻ، هڪ نئين پرت ٺاهي ويندي آهي. تنهن ڪري، سڄي تصوير کي تبديل ڪرڻ يا ان کي ٻيهر تعمير ڪرڻ کان سواء، جيئن توهان کي هڪ مجازي مشين سان ڪرڻو پوندو، صرف پرت شامل يا تازه ڪاري ڪئي وئي آهي. ۽ توهان کي پوري نئين تصوير کي ورهائڻ جي ضرورت ناهي، صرف تازه ڪاري تقسيم ڪئي وئي آهي، تصويرن کي ورهائڻ آسان ۽ تيز بڻائي ٿي.

هر تصوير جي دل تي هڪ بنيادي تصوير آهي. مثال طور، ubuntu، Ubuntu جي بنيادي تصوير، يا fedora، Fedora تقسيم جي بنيادي تصوير. توھان پڻ تصويرون استعمال ڪري سگھو ٿا بنيادي طور تي نئين تصويرون ٺاهڻ لاء. مثال طور، جيڪڏهن توهان وٽ هڪ apache تصوير آهي، توهان ان کي استعمال ڪري سگهو ٿا بنيادي تصوير جي طور تي توهان جي ويب ايپليڪيشنن لاءِ.

نوٽ! Docker عام طور تي تصويرون ڪڍندو آهي Docker Hub رجسٽري مان.

Docker تصويرون انهن بنيادي تصويرن مان ٺاهي سگھجن ٿيون؛ اسان انهن تصويرن کي هدايتون ٺاهڻ لاءِ قدم سڏين ٿا. هر هدايت هڪ نئين تصوير يا سطح ٺاهي ٿي. ھدايتون ھيٺيون ھونديون:

  • حڪم هلائڻ
  • فائل يا ڊاريڪٽري شامل ڪرڻ
  • هڪ ماحولياتي متغير ٺاهڻ
  • جڏهن هن تصوير جو ڪنٽينر شروع ڪيو وڃي ته ڇا هلائڻ لاءِ هدايتون

اهي هدايتون هڪ فائل ۾ محفوظ ٿيل آهن Dockerfile. ڊاڪر هن کي پڙهي ٿو Dockerfile، جڏهن توهان تصوير ٺاهي، انهن هدايتن تي عمل ڪري ٿو ۽ آخري تصوير واپس ڪري ٿو.

ڊاکر رجسٽري ڪيئن ڪم ڪندو آهي؟

رجسٽري ڊاکر تصويرن لاءِ مخزن آهي. هڪ دفعو تصوير ٺاهي وئي، توهان ان کي شايع ڪري سگهو ٿا عوامي Docker Hub رجسٽري يا توهان جي ذاتي رجسٽري ڏانهن.

ڊاکر ڪلائنٽ سان، توهان اڳ ۾ ئي شايع ٿيل تصويرون ڳولي سگهو ٿا ۽ ڪنٽينر ٺاهڻ لاءِ انهن کي پنهنجي ڊاکر مشين تي ڊائون لوڊ ڪري سگهو ٿا.

Docker Hub عوامي ۽ نجي تصويري مخزن مهيا ڪري ٿي. عوامي ذخيرو مان تصويرون ڳولڻ ۽ ڊائون لوڊ ڪرڻ هر ڪنهن لاء دستياب آهي. ڳولها نتيجن ۾ نجي اسٽوريج جا مواد شامل نه آهن. ۽ صرف توهان ۽ توهان جا استعمال ڪندڙ اهي تصويرون حاصل ڪري سگهن ٿا ۽ انهن مان ڪنٽينر ٺاهي سگهن ٿا.

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

هڪ ڪنٽينر هڪ آپريٽنگ سسٽم، صارف فائلون، ۽ ميٽا ڊيٽا تي مشتمل آهي. جيئن اسان ڄاڻون ٿا، هر ڪنٽينر هڪ تصوير مان ٺهيل آهي. ھي تصوير ڊاڪر کي ٻڌائي ٿي ته ڪنٽينر ۾ ڇا آھي، ڪھڙو عمل شروع ڪيو وڃي، ڪڏھن ڪنٽينر شروع ٿئي، ۽ ٻي ترتيب واري ڊيٽا. Docker تصوير صرف پڙهڻ لاء آهي. جڏهن ڊڪر هڪ ڪنٽينر شروع ڪري ٿو، اهو تصوير جي چوٽي تي هڪ پڙهڻ/لکڻ واري پرت ٺاهي ٿو (يونين فائل سسٽم کي استعمال ڪندي جيئن اڳ بيان ڪيو ويو آهي) جنهن ۾ ايپليڪيشن هلائي سگهجي ٿي.

ڇا ٿيندو جڏهن ڪنٽينر شروع ٿئي ٿو؟

يا پروگرام استعمال ڪندي docker، يا RESTful API استعمال ڪندي، ڊڪر ڪلائنٽ ڊاڪر ڊيمن کي ٻڌائي ٿو ڪنٽينر کي شروع ڪرڻ لاءِ.

$ sudo docker run -i -t ubuntu /bin/bash

اچو ته هن حڪم تي هڪ نظر وٺو. ڪلائنٽ حڪم استعمال ڪندي شروع ڪيو ويو آهي docker، اختيار سان run، جنهن جو چوڻ آهي ته هڪ نئون ڪنٽينر شروع ڪيو ويندو. ڪنٽينر کي هلائڻ لاءِ گھٽ ۾ گھٽ ضرورتون ھيٺيون خاصيتون آھن:

  • ڪنٽينر ٺاهڻ لاءِ ڪهڙي تصوير استعمال ڪجي. اسان جي صورت ۾ ubuntu
  • اهو حڪم جيڪو توهان هلائڻ چاهيو ٿا جڏهن ڪنٽينر شروع ٿئي ٿو. اسان جي صورت ۾ /bin/bash

هود جي تحت ڇا ٿيندو جڏهن اسان هن حڪم کي هلائيندا آهيون؟

Docker، ترتيب ۾، هيٺيون ڪندو آهي:

  • ubuntu تصوير ڊائون لوڊ ڪريو: docker تصوير جي دستيابي لاءِ چيڪ ڪري ٿو ubuntu مقامي مشين تي، ۽ جيڪڏهن اهو موجود ناهي، پوء ان کي ڊائون لوڊ ڪريو ڊاکر حب. جيڪڏھن ڪا تصوير آھي، اھو ان کي استعمال ڪري ھڪڙي ڪنٽينر ٺاھيو؛
  • ڪنٽينر ٺاهي ٿو: جڏهن تصوير ملي ٿي، ڊاکر ان کي استعمال ڪري ٿو هڪ ڪنٽينر ٺاهڻ لاء؛
  • فائل سسٽم کي شروع ڪري ٿو ۽ صرف پڙهڻ واري سطح کي نصب ڪري ٿو: ڪنٽينر فائل سسٽم ۾ ٺاهيو ويو آهي ۽ تصوير صرف پڙهڻ جي سطح تي شامل ڪئي وئي آهي؛
  • نيٽ ورڪ/پل کي شروع ڪري ٿو: هڪ نيٽ ورڪ انٽرفيس ٺاهي ٿو جيڪو ڊڪر کي ميزبان مشين سان رابطو ڪرڻ جي اجازت ڏئي ٿو؛
  • IP پتي کي ترتيب ڏيڻ: پتو ڳولهي ۽ سيٽ ڪري ٿو؛
  • بيان ڪيل عمل شروع ٿئي ٿو: توهان جي ايپليڪيشن کي شروع ڪندي؛
  • توهان جي ايپليڪيشن مان پروسيس ۽ پيداوار پيدا ڪري ٿي: توهان جي ايپليڪيشن جي معياري ان پٽ، آئوٽ پٽ، ۽ غلطي جي وهڪري کي ڳنڍي ۽ لاگ ان ڪري ٿو، تنهنڪري توهان ٽريڪ ڪري سگهو ٿا ته توهان جي ايپليڪيشن ڪيئن ڪم ڪري رهي آهي.

توهان وٽ هاڻي ڪم ڪندڙ ڪنٽينر آهي. توھان پنھنجي ڪنٽينر کي منظم ڪري سگھو ٿا، پنھنجي ايپليڪيشن سان رابطو ڪريو. جڏهن توهان اپليڪيشن کي روڪڻ جو فيصلو ڪيو، ڪنٽينر کي ختم ڪريو.

استعمال ٿيل ٽيڪنالاجيون

Docker Go ۾ لکيو ويو آهي ۽ مٿين ڪارڪردگي کي لاڳو ڪرڻ لاءِ لينڪس ڪنيل جون ڪجهه خاصيتون استعمال ڪري ٿو.

نالا

Docker ٽيڪنالاجي استعمال ڪري ٿو namespaces الڳ ٿيل ڪم اسپيس کي منظم ڪرڻ، جنهن کي اسين ڪنٽينر سڏين ٿا. جڏهن اسان هڪ ڪنٽينر شروع ڪندا آهيون، ڊاکر انهي ڪنٽينر لاءِ نالن جي جڳهن جو هڪ سيٽ ٺاهي ٿو.

هي هڪ الڳ پرت ٺاهي ٿو، جنهن ۾ ڪنٽينر جو هر پاسو پنهنجي نالي جي جاءِ تي هلندو آهي ۽ خارجي نظام تائين رسائي نه هوندي آهي.

ڪجھ نالي جي جڳھن جي فهرست جيڪي ڊاکر استعمال ڪندا آھن:

  • pid: عمل کي الڳ ڪرڻ؛
  • نيٽ: نيٽ ورڪ انٽرفيس کي منظم ڪرڻ لاء؛
  • آئي پي سي: IPC وسيلن کي منظم ڪرڻ لاء. (ICP: InterProccess Communication)؛
  • mnt: جبل پوائنٽ کي منظم ڪرڻ؛
  • utc: ڪنيل ۽ ڪنٽرول ورزن جي نسل کي الڳ ڪرڻ (UTC: Unix timesharing system).

ڪنٽرول گروپ

Docker ٽيڪنالاجي پڻ استعمال ڪري ٿو cgroups يا ڪنٽرول گروپ. اڪيلائي ۾ ايپليڪيشن کي هلائڻ جي ڪنجي آهي ايپليڪيشن کي مهيا ڪرڻ لاءِ صرف انهن وسيلن سان جيڪي توهان مهيا ڪرڻ چاهيو ٿا. اهو يقيني بڻائي ٿو ته ڪنٽينر سٺا پاڙيسري هوندا. ڪنٽرول گروپ توهان کي دستياب هارڊويئر وسيلن کي حصيداري ڪرڻ جي اجازت ڏين ٿا ۽، جيڪڏهن ضروري هجي ته، حدون ۽ پابنديون مقرر ڪريو. مثال طور، ڪنٽينر لاءِ ميموري جي ممڪن مقدار کي محدود ڪريو.

يونين فائل سسٽم

يونين فائل سسٽم يا يونين ايف ايس هڪ فائيل سسٽم آهي جيڪو ڪم ڪري ٿو پرت ٺاهي، ان کي تمام ہلڪو وزن ۽ تيز بڻائي ٿو. ڊاکر يونين ايف ايس استعمال ڪري ٿو بلاڪ ٺاهڻ لاءِ جنهن مان ڪنٽينر ٺهيل آهي. Docker يونين ايف ايس جي ڪيترن ئي قسمن کي استعمال ڪري سگھي ٿو: AUFS، btrfs، vfs ۽ DeviceMapper.

ڪنٽينر فارميٽ

Docker انهن حصن کي گڏ ڪري ٿو هڪ لفافي ۾ جنهن کي اسان ڪنٽينر فارميٽ سڏين ٿا. ڊفالٽ فارميٽ سڏيو ويندو آهي libcontainer. ڊڪر پڻ سپورٽ ڪري ٿو روايتي ڪنٽينر فارميٽ لينڪس تي استعمال ڪندي LXC. مستقبل ۾، ڊڪر شايد ٻين ڪنٽينر فارميٽ جي حمايت ڪري سگھن ٿا. مثال طور، بي ايس ڊي جيل يا سولاري زونز سان ضم ٿيڻ.

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

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