مان ڪيترن ئي مهينن کان ڊڪر استعمال ڪري رهيو آهيان ويب پروجيڪٽ جي ڊولپمينٽ/ترسيل جي عمل کي ترتيب ڏيڻ لاءِ. مان حب الوطن پڙهندڙن کي پيش ڪريان ٿو ڊڪر بابت تعارفي مضمون جو ترجمو - "سمجھڻ وارو ڊڪر".
ڊڪر ڇا آهي؟
Docker ترقي، پهچائڻ، ۽ آپريٽنگ ايپليڪيشنن لاء هڪ کليل پليٽ فارم آهي. Docker توهان جي ايپليڪيشنن کي تيزيءَ سان پهچائڻ لاءِ ٺهيل آهي. ڊاڪر سان، توهان پنهنجي ايپليڪيشن کي پنهنجي انفراسٽرڪچر مان ڊيڪپل ڪري سگهو ٿا ۽ انفراسٽرڪچر کي منظم ايپليڪيشن طور علاج ڪري سگهو ٿا. Docker توهان کي توهان جي ڪوڊ کي تيزيءَ سان موڪلڻ، تيزيءَ سان ٽيسٽ ڪرڻ، ايپليڪيشنن کي تيزيءَ سان موڪلڻ، ۽ ڪوڊ لکڻ ۽ رننگ ڪوڊ جي وچ ۾ وقت گهٽائڻ ۾ مدد ڪري ٿو. Docker اهو ڪري ٿو هڪ هلڪو وزن ڪنٽينر ورچوئلائيزيشن پليٽ فارم ذريعي، پروسيس ۽ افاديت استعمال ڪندي جيڪي توهان جي ايپليڪيشنن کي منظم ۽ ميزباني ڪرڻ ۾ مدد ڪن ٿيون.
ان جي بنيادي طور تي، ڊاکر توهان کي تقريبا ڪنهن به ايپليڪيشن کي هلائڻ جي اجازت ڏئي ٿو، محفوظ طور تي ڪنٽينر ۾ الڳ الڳ. محفوظ اڪيلائي توهان کي اجازت ڏئي ٿي ڪيترن ئي ڪنٽينرز کي هڪ ئي وقت تي هڪ ئي ميزبان تي. ڪنٽينر جي ٿلهي طبيعت، جيڪا بغير ڪنهن هائپر وائزر جي اضافي بوجھ جي هلندي آهي، توهان کي توهان جي هارڊويئر مان وڌيڪ حاصل ڪرڻ جي اجازت ڏئي ٿي.
توهان جي ايپليڪيشن کي پيڪيجنگ (۽ اجزاء جيڪي توهان استعمال ڪندا آهيو) ڊاکر ڪنٽينرز ۾؛
انهن ڪنٽينرز جي تقسيم ۽ ترسيل توهان جي ٽيمن کي ترقي ۽ جانچ لاءِ؛
انهن ڪنٽينرز کي توهان جي پيداوار جي سائيٽن تي رکڻ، ٻنهي ڊيٽا سينٽرن ۽ بادلن ۾.
مان ڇا لاءِ ڊڪر استعمال ڪري سگهان ٿو؟
جلدي شايع ڪريو پنھنجيون ايپليڪيشنون
ڊاڪر ڊولپمينٽ چڪر کي منظم ڪرڻ لاءِ وڏو آهي. Docker ڊولپرز کي اجازت ڏئي ٿو ته مقامي ڪنٽينرز کي هلائڻ جي ايپليڪيشنن ۽ خدمتن سان. جيڪو بعد ۾ توهان کي مسلسل انضمام جي عمل سان ضم ڪرڻ جي اجازت ڏئي ٿو ۽ ترتيب ڏيڻ واري ڪم جي فلو.
مثال طور، توهان جا ڊولپر مقامي طور ڪوڊ لکندا آهن ۽ انهن جي ڊولپمينٽ اسٽيڪ (ڊاڪر تصويرن جو هڪ سيٽ) ساٿين سان شيئر ڪندا آهن. جڏهن اهي تيار آهن، اهي ڪوڊ ۽ ڪنٽينرز کي ٽيسٽ سائيٽ ڏانهن ڌڪيندا آهن ۽ ڪنهن به ضروري ٽيسٽ کي هلائيندا آهن. ٽيسٽ سائيٽ تان، اهي موڪلي سگهن ٿا ڪوڊ ۽ تصويرون پيداوار ڏانهن.
آساني سان ترتيب ڏيڻ ۽ ظاهر ڪرڻ
ڊاکر ڪنٽينر تي ٻڌل پليٽ فارم توهان جي پيل لوڊ کي پورٽ ڪرڻ آسان بڻائي ٿو. Docker ڪنٽينر توهان جي مقامي مشين تي هلائي سگهن ٿا، يا ته حقيقي يا مجازي مشين تي ڊيٽا سينٽر ۾، يا ڪلائوڊ ۾.
ڊاکر جي پورٽيبلٽي ۽ ٿلهي طبيعت توهان جي ڪم لوڊ کي متحرڪ طور تي منظم ڪرڻ آسان بڻائي ٿي. توھان استعمال ڪري سگھوٿا ڊڪر پنھنجي ايپليڪيشن يا خدمتن کي ترتيب ڏيڻ يا بند ڪرڻ لاءِ. ڊاکر جي رفتار هن کي ويجهي حقيقي وقت ۾ ڪرڻ جي اجازت ڏئي ٿي.
وڌيڪ لوڊ ۽ وڌيڪ پيل لوڊ
Docker ٿلهي ۽ تيز آهي. اهو مهيا ڪري ٿو هڪ لچڪدار، قيمتي موثر متبادل هائپر ويزر تي ٻڌل ورچوئل مشينن لاءِ. اهو خاص طور تي ڪارائتو آهي تيز لوڊ ماحول ۾، مثال طور، جڏهن توهان پنهنجو ڪلائوڊ يا پليٽ فارم-جي-سروس ٺاهي رهيا آهيو. پر اهو پڻ مفيد آهي ننڍن ۽ وچولي سائيز جي ايپليڪيشنن لاءِ جڏهن توهان چاهيو ٿا ته توهان وٽ موجود وسيلن مان وڌيڪ حاصل ڪرڻ.
مکيه Docker اجزاء
Docker ٻن مکيه حصن تي مشتمل آهي:
Docker: هڪ کليل ذريعو ورچوئلائيزيشن پليٽ فارم؛
Docker Hub: Docker ڪنٽينرز کي ورهائڻ ۽ انتظام ڪرڻ لاءِ اسان جي پليٽ فارم جي طور تي هڪ خدمت.
نوٽ! Docker Apache 2.0 لائسنس تحت ورهايو ويو آهي.
ڊاکر فن تعمير
Docker استعمال ڪري ٿو ڪلائنٽ-سرور آرڪيٽيڪچر. Docker ڪلائنٽ ڊاڪر ڊيمن سان رابطو ڪري ٿو، جيڪو توهان جي ڪنٽينرز کي ٺاهڻ، هلائڻ ۽ ورهائڻ جو بار کڻندو آهي. ٻئي ڪلائنٽ ۽ سرور ساڳئي سسٽم تي هلائي سگهن ٿا، توهان ڪلائنٽ کي ريموٽ ڊاکر ڊيمن سان ڳنڍي سگهو ٿا. ڪلائنٽ ۽ سرور هڪ ساکٽ يا هڪ RESTful API ذريعي رابطو ڪري ٿو.
ڊڪر ڊيمون
جيئن ڊاگرام ۾ ڏيکاريل آهي، ڊيمون ميزبان مشين تي هلندو آهي. صارف سڌو سنئون سرور سان رابطو نه ڪندو آهي، پر هن لاء ڪلائنٽ استعمال ڪندو آهي.
اسان اڳ ۾ ئي ڄاڻون ٿا ته هڪ تصوير صرف پڙهڻ واري ٽيمپليٽ آهي جنهن مان هڪ ڪنٽينر ٺاهيو ويندو آهي. هر تصوير سطح جي هڪ سيٽ تي مشتمل آهي. 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 الڳ ٿيل ڪم اسپيس کي منظم ڪرڻ، جنهن کي اسين ڪنٽينر سڏين ٿا. جڏهن اسان هڪ ڪنٽينر شروع ڪندا آهيون، ڊاکر انهي ڪنٽينر لاءِ نالن جي جڳهن جو هڪ سيٽ ٺاهي ٿو.
هي هڪ الڳ پرت ٺاهي ٿو، جنهن ۾ ڪنٽينر جو هر پاسو پنهنجي نالي جي جاءِ تي هلندو آهي ۽ خارجي نظام تائين رسائي نه هوندي آهي.
ڪجھ نالي جي جڳھن جي فهرست جيڪي ڊاکر استعمال ڪندا آھن: