JavaRush /جاوا بلاگ /Random-SD /Docker سان پهرين واقفيت
Viacheslav
سطح

Docker سان پهرين واقفيت

گروپ ۾ شايع ٿيل
ڪنٽينرائزيشن هڪ ميکانيزم آهي جيڪو اڪثر عملي طور تي استعمال ٿيندو آهي. مثال طور، جڏهن توهان ڳولا ڪريو headhunter تي، توهان کي ڳوليندا 477 خالي جايون اڄ تائين جيڪي ڊڪر جو ذڪر ڪن ٿا. تنهن ڪري، اهو خراب خيال نه هوندو ته پنهنجو پاڻ کي واقف ڪرڻ لاء اهو ڇا آهي. مون کي اميد آهي ته هي مختصر جائزو پهريون خيال ٺاهڻ ۾ مدد ڪندو. يقينن، هو ان کي اضافي مواد سان گڏ ڪندو، جهڙوڪ Udemy تي ڪورس. Docker جو پهريون تعارف - 1

تعارف

هن مختصر جائزي ۾ آئون هڪ موضوع تي رابطو ڪرڻ چاهيندس جهڙوڪ ڪنٽينرائزيشن. ۽ توهان کي سمجھڻ سان شروع ڪرڻ جي ضرورت آهي ته ڪنٽينرائزيشن اصل ۾ ڇا آهي. وڪيپيڊيا جي مطابق، " ڪنٽينرائيزيشن " آپريٽنگ سسٽم-سطح (يعني هارڊويئر نه ) ورچوئلائيزيشن آهي جنهن ۾ آپريٽنگ سسٽم ڪرنل صرف هڪ جي بدران ڪيترن ئي الڳ ٿيل يوزر اسپيس مثالن کي برقرار رکي ٿو. " يوزر ​​اسپيس " آپريٽنگ سسٽم جي ورچوئل ميموري ايڊريس اسپيس آهي جيڪا يوزر پروگرامن لاءِ مخصوص ڪئي وئي آهي. يوزر اسپيس جا مثال (عام طور تي ڪنٽينر سڏجن ٿا) استعمال ڪندڙ جي نقطه نظر کان هڪ واحد آپريٽنگ سسٽم مثال سان مڪمل طور تي هڪجهڙا آهن. ڪنٽينر مڪمل ڪنٽينر جي اڪيلائي کي يقيني بڻائي ٿو، تنهنڪري مختلف ڪنٽينرز جا پروگرام هڪ ٻئي تي اثر انداز نٿا ڪري سگهن. اهو ظاهر ٿئي ٿو ته ڪنٽينرائيزيشن سافٽ ويئر ورچوئلائيزيشن آهي، اهو آهي، آپريٽنگ سسٽم جي سطح تي ورچوئلائيزيشن، جنهن لاء آپريٽنگ سسٽم ڪرنل ذميوار آهي. هن طريقي جي خاصيتن مان هڪ خاصيت اها آهي ته سڀئي ڪنٽينر هڪ عام ڪنيل استعمال ڪندا آهن، ساڳيو ميزبان آپريٽنگ سسٽم (يعني اهو آهي، جنهن تي ڪنٽينر واقع آهن). هي توهان کي مجازي هارڊويئر کي متحرڪ ڪرڻ ۽ آپريٽنگ سسٽم جو هڪ مڪمل مثال شروع ڪرڻ جي اوور هيڊ کان نجات حاصل ڪرڻ جي اجازت ڏئي ٿو. اسان چئي سگهون ٿا ته هي آهي "هلڪو وزن" ورچوئلائيزيشن. ڪرنل OS جو مرڪزي حصو آهي جيڪو ايپليڪيشنن کي ڪمپيوٽر جي وسيلن تائين هموار ٿيل رسائي فراهم ڪري ٿو، جهڙوڪ پروسيسر ٽائيم، ميموري، خارجي هارڊويئر، ۽ خارجي ان پٽ ۽ آئوٽ پٽ ڊوائيسز. ڪنيل پڻ عام طور تي مهيا ڪري ٿي فائيل سسٽم ۽ نيٽ ورڪ پروٽوڪول خدمتون. عام طور تي، هي سڄي نظام جي دل آهي. اضافي معلومات لاء، اهو مفيد ٿي سگھي ٿو ته مواد جو جائزو وٺو " ڪنٽينر بابت عام معلومات ". ۽ ڪجھ وڌيڪ لفظ تعارف مڪمل ڪرڻ لاء. اسان کي ھاڻي سمجھ ۾ اچي ويو آھي ته ھڪڙي آپريٽنگ سسٽم ۾ ھڪڙو ڪنيل آھي. اهو صارف جي جڳهه جي مثالن لاءِ اڪيلائي فراهم ڪري ٿو. ان حوالي سان، توھان کي " cgroups " اصطلاح ملندو . هي لينڪس ڪنيل ميڪانيزم جو نالو آهي جيڪو توهان کي حاصل ڪرڻ جي اجازت ڏئي ٿو. تنهن ڪري، اسان اهو چئي سگهون ٿا ته ڪنٽينرائزيشن جو رستو لينڪس سسٽم سان شروع ٿيو. بهرحال، ونڊوز 10 سان شروع ڪندي، ڪنٽينرائيزيشن لاءِ سپورٽ پڻ ظاهر ٿي. ورچوئلائيزيشن سان ڪم ڪرڻ لاءِ، توهان کي پنهنجي ڪمپيوٽر جي BIOS ۾ ورچوئلائيزيشن سپورٽ ترتيب ڏيڻ جي ضرورت آهي. اهو ڪيئن ڪجي ڪمپيوٽر تي منحصر آهي. مثال طور، اهو هن طرح نظر اچي سگهي ٿو:
Docker جو پهريون تعارف - 2
ونڊوز تي توهان هن کي مختلف طريقن سان چيڪ ڪري سگهو ٿا. مثال طور، توهان Microsoft ويب سائيٽ تان هڪ خاص يوٽيلٽي ڊائون لوڊ ڪري سگهو ٿا: هارڊويئر-اسسٽڊ ورچوئلائيزيشن ڊيٽيڪشن ٽول . خير، اهو هڪ ٻيو اهم تصور جو ذڪر ڪرڻ جي قابل آهي - Hypervisor. Hypervisor هڪ مجازي مشين مانيٽر آهي، هڪ ئي ڪمپيوٽر تي ڪيترن ئي آپريٽنگ سسٽم جي متوازي عمل کي يقيني بڻائڻ لاء هڪ پروگرام. هائپرائزر انهي ڳالهه کي يقيني بڻائي ٿو ته آپريٽنگ سسٽم هڪ ٻئي کان الڳ آهن ۽ هلندڙ او ايسز جي وچ ۾ وسيلن کي حصيداري ڪن ٿا. هڪ اهڙو هائپرائزر آهي Oracle VirtualBox .
Docker جو پهريون تعارف - 3

ڊاڪر

تنهن ڪري، ڇا ورچوئلائزيشن واضح آهي. پر ان کي ڪيئن استعمال ڪجي؟ ۽ هتي Docker اسان جي مدد لاء اچي ٿو. ڊاکر ڪنٽينر ٿيل ماحول ۾ ايپليڪيشنن جي ترتيب ۽ انتظام کي خودڪار ڪرڻ لاءِ سافٽ ويئر آهي. اهو ان حقيقت سان شروع ڪرڻ جي قابل آهي ته ڊاکر اهڙي تصور جي نمائندگي ڪري ٿو جهڙوڪ ڊڪر اينگنگ. ۽ توھان کي شروع ڪرڻ گھرجي سرڪاري ڊڪر ويب سائيٽ ۽ ” ڊاڪر جو جائزو “ سيڪشن.
Docker جو پهريون تعارف - 4
دستاويز چوي ٿو ته ڊڪر تي مشتمل آهي:
  • Docker سرور کي Docker Daemon پروسيس (dockerd) سڏيو ويندو آهي.
  • ڪمان لائن انٽرفيس، CLI (ڊاڪر) جي نالي سان پڻ سڃاتو وڃي ٿو.
  • هڪ REST API جيڪو بيان ڪري ٿو ته پروگرام ڪيئن "ڳالهه" ڪري سگهن ٿا ڊيمن سان ۽ ان کي ٻڌايو ته ڇا ڪجي.
ان کان اڳ جو اسان اڳتي وڌون، اچو ته انسٽال ڪريون ڊڪر، يعني انسٽال ڪريو ڊاڪر ڊيمون. Docker ويب سائيٽ تي " Docker for Windows " کي انسٽال ڪرڻ لاءِ هدايتون آهن. دلچسپ ڳالهه اها آهي ته ڊڪر کي پنهنجي سسٽم جي گهرج آهي. ۽ جيڪڏھن توھان، مون وانگر، ھڪڙي پراڻي ونڊوز آھي، مثال طور ونڊوز 7، پوء توھان کي استعمال ڪرڻو پوندو Docker Toolbox.
Docker جو پهريون تعارف - 5

ڊڪر ٽول باڪس

ڊاڪر کي انسٽال ڪرڻ لاءِ پراڻي مشينن تي جيڪي سسٽم گهرجن کي پورا نه ڪن. ويب سائيٽ ائين چوي ٿي، "ليگيسي ڊيسڪ ٽاپ حل". اچو ته وڃو " ڊاڪر ٽول باڪس " صفحي ۽ ان کي ڊائون لوڊ ڪريو. هن سيٽ جو وزن اٽڪل 211 ميگا بائيٽ آهي. اسان ان کي ڊفالٽ جي طور تي انسٽال ڪنداسين، اهو آهي، اسان صرف جھنڊن کي ترتيب ڏيڻ کان سواء هر شيء سان نرمي سان متفق ڪنداسين. انسٽاليشن کان پوء، اسان چيڪ ڪنداسين ته هر شيء ٺيڪ آهي. مستقبل ۾، اسان جي جنگ جو ميدان ڪمان لائن هوندو. مان سفارش ڪريان ٿو Windows ڪمانڊ لائن استعمال نه ڪريو، ڇو ته ان سان گڏ غير واضح مسئلا ٿي سگھن ٿا. اهو بهتر آهي بش شيل استعمال ڪرڻ. ونڊوز تي، ان کي حاصل ڪرڻ جو سڀ کان وڌيڪ تجويز ڪيل طريقو آهي انسٽال ڪرڻ گٽ ورزن ڪنٽرول سسٽم ، اهو اڃا به ڪم ۾ ايندو. ڇاڪاڻ ته ”بنڊل“ ان سان گڏ بيش هوندو جنهن جي اسان کي ضرورت آهي. ھن جائزي لاءِ مان استعمال ڪندس git bash. توهان به انسٽال ڪري سگهو ٿا bash سان CYGWIN . اچو ته لانچ ڪريون bash يا git bash. اچو ته پڪ ڪريون ته اسان ڊاڪر مشين انسٽال ڪئي آهي، جنهن کي ڊاڪر مشين به چيو ويندو آهي: docker-machine -version هي ڊڪر مشين ڇا آهي؟ Docker Machine ڊاکر ٿيل ميزبانن کي منظم ڪرڻ لاءِ هڪ افاديت آهي (اهي اهي ميزبان آهن جن تي ڊڪر انجڻ نصب ٿيل آهي). جيڪڏهن اسان انسٽال ڪرڻ کان پوءِ فوري طور تي Docket Toolbox view docker مشينون ڪمانڊ استعمال ڪندي docker-machine ls، اسان هڪ خالي فهرست ڏسندا:
ڊاڪر جو پهريون تعارف - 6
اچو ته هڪ نئين مشين ٺاهي. هن کي ڪرڻ لاء، اسان کي ٺاهڻ جي حڪم کي هلائڻ جي ضرورت آهي : docker-machine create -- driver virtualbox javarush: اسان ڏسندا سين ڊڪر مشين ٺاهڻ لاگ:
Docker جو پهريون تعارف - 7
هتي اسان کي ڪهڙي دلچسپي آهي، هيٺ ڏنل آهي. Boot2Docker ڇا آهي؟ هي ڊڪر انجڻ کي هلائڻ لاءِ هڪ گهٽ ۾ گهٽ لينڪس ڊويزن آهي (اسان سمجهون ٿا ته ڊڪر ڪم ڪري ٿو لينڪس ورچوئلائيزيشن ٽولز جي مهرباني، ۽ ونڊوز ۾ ضروري ميکانيزم ظاهر ٿيو صرف ونڊوز 10 سان شروع ٿئي ٿو). هي تقسيم تي ٻڌل آهي " Tiny Core Linux " تقسيم. VirtualBox VM بابت پڻ ذڪر ڪيو ويو آهي. اھو آھي ڇو جو اسان بيان ڪيو آھي --driver virtualbox. هڪ نئين مجازي مشين ٺاهي وئي VirtualBox ۾ Boot2Docker تصوير مان. ٺاھڻ کان پوء، اسان VirtualBox لانچ ڪري سگھون ٿا (جيئن ته VirtualBox Docker Toolbox سان نصب ٿيل آھي) ۽ ڊاکر مشين لاء ٺاھيل ورچوئل مشين ڏسو:
Docker جو پهريون تعارف - 8
ٺاھڻ کان پوء، اسان کي حڪم " docker-machine env " هلائڻ لاء چيو ويندو ماحول جي متغير حاصل ڪرڻ لاء جيڪي ڊاکر مشين سان ڳنڍڻ لاء ترتيب ڏيڻ جي ضرورت آھي:
Docker جو پهريون تعارف - 9
docker-machine استعمال ڪندي هن حڪم تي عمل ڪرڻ کان پوء، اسان هڪ ريموٽ ڊاکر ٿيل ميزبان سان ڳنڍيندا آهيون (هن صورت ۾، هڪ مجازي هڪ مجازي باڪس تي ميزباني ڪيل آهي) ۽ مقامي طور تي ڊڪر ڪمانڊ تي عمل ڪري سگهون ٿا ڄڻ ته اسان انهن کي ريموٽ ميزبان تي عمل ڪري رهيا آهيون. چيڪ ڪرڻ لاء، اسان هلائي سگهون ٿا " docker info " حڪم. جيڪڏهن ڊاکر مشين سان ڪنيڪشن قائم نه آهي، اسان کي هڪ غلطي ملي ويندي. ۽ جيڪڏھن سڀ ڪجھ ٺيڪ آھي، ڊاڪر مشين تي ڊاکر بابت ڄاڻ. ھاڻي اھو وقت آھي سمجھڻ جو ڊڪر عام طور تي ڪيئن ڪم ڪري ٿو ۽ ان کي ڪيئن استعمال ڪجي.
Docker جو پهريون تعارف - 10

ڊاکر ڪنٽينرز

تنهنڪري اسان وٽ ڊڪر آهي. هي ڊاکر به ڇا آهي؟ Docker دستاويزن ۽ " شروع ڪريو " سيڪشن اسان کي انهي کي سمجهڻ ۾ مدد ڏيندو . هن حصي جو تعارفي حصو Docker Concepts متعارف ڪرايو آهي . اهو ٻڌائي ٿو ته ڊڪر هڪ پليٽ فارم آهي ترقي ڪرڻ، ڊيبگنگ ۽ ايپليڪيشنن کي هلائڻ لاء ڪنٽينرز ۾. تنهن ڪري، Docker لاء بنيادي شيء ڪنٽينرز آهي. توڙي جو توهان ڊاڪر لوگو تي نظر وجهو، اها هڪ وهيل آهي جيڪا پنهنجي پٺي تي ڪنٽينر رکي ٿي. پر هڪ ڪنٽينر ڇا آهي؟ اڳيون " تصويرون ۽ ڪنٽينرز " سيڪشن ۾ اهو چوي ٿو ته هڪ ڪنٽينر تصوير جو هڪ هلندڙ مثال آهي. ۽ تصوير هڪ ”پيڪيج“ آهي جنهن ۾ ايپليڪيشن لاءِ گهربل هر شيءِ شامل آهي (ڪوڊ، ماحول، لائبريريون، سيٽنگون وغيره). هاڻي اچو ته پاڻ ڪوشش ڪريون. ڊاڪر ويب سائيٽ تي هڪ سيڪشن آهي جنهن کي سڏيو ويندو آهي " ڊاڪر نموني " جنهن ۾ شامل آهي " شروع ڪندڙن لاءِ ڊڪر ". هتان جا مثال مون کي وڌيڪ دلچسپ لڳي رهيا آهن. تنهن ڪري، اسان اوچتو الپائن لينڪس سان واقف ٿيڻ چاهيندا هئاسين ۽ اسان اهو ڪري سگهون ٿا ڊڪر ڪنٽينرز استعمال ڪندي. هڪ تصوير حاصل ڪرڻ لاء، اسان کي ان کي "ڪڍڻ" يا "ڪڍڻ" گهرجي. تنهن ڪري، اسان عمل ڪريون ٿا ڊڪر پل حڪم :docker pull apline
ڊاڪر جو پهريون تعارف - 11
جيئن اسان ڏسي سگهون ٿا، اسان ڪنهن هنڌ تان ڊائون لوڊ ڪري رهيا آهيون. ڊفالٽ طور، Docker نيٽ ورڪ تي ان جي مخزن کي ڏسي ٿو https://hub.docker.com . تصوير کي ڪاميابيءَ سان حاصل ڪرڻ کان پوءِ، اسان ڊاڪر اميجز ڪمانڊ کي هلائڻ سان دستياب تصويرن جي لسٽ چيڪ ڪري سگھون ٿا :
Docker جو پهريون تعارف - 12
هاڻي اسان وٽ هڪ اپلائن تصوير آهي. جيئن ته ڪنٽينر تصوير جو هڪ هلندڙ مثال آهي، اچو ته هن تصوير کي شروع ڪريون. اچو ته ڪمانڊ استعمال ڪندي ڪنٽينر کي لانچ ڪريون docker run alpine. جيئن اسان ڏسون ٿا، ڪجھ به نه ٿيو. جيڪڏهن اسان سڀني فعال ڪنٽينرز کي ڊسپلي ڪرڻ لاء حڪم جاري ڪريون ٿا docker ps، اسان کي ڪجھ به نه ملندو. پر جيڪڏهن اسان عمل ڪريون ٿا، docker ps -aاسان سڀني ڪنٽينرز کي ڏسندا سين:
Docker سان پهرين واقفيت - 13
شيء اها آهي ته اسان ڊاکر کي انٽرويو موڊ ۾ لانچ نه ڪيو. تنهن ڪري، هن حڪم تي عمل ڪيو ۽ روانو ٿيو. ٽرمينل کولڻ جو حڪم هو. اچو ته ساڳيو ڪم ڪريون، پر انٽرايڪٽو موڊ ۾ ( -it flag سان ):
ڊڪر جو پهريون تعارف - 14
جئين توهان ڏسي سگهو ٿا، هڪ غلطي تي قابو پائڻ ۽ اشارو استعمال ڪندي، اسان ڪنٽينر ڏانهن ويا ۽ ان ۾ ڪم ڪري سگهون ٿا! ان جي آپريشن کي روڪڻ کان سواء ڪنٽينر مان نڪرڻ لاء، توھان دٻائي سگھو ٿا Ctrl + p + q. جيڪڏهن اسان هاڻي هلون ٿا docker ps، اسان هڪ فعال ڪنٽينر ڏسندا سين. اڳ ۾ ئي هلندڙ ڪنٽينر داخل ڪرڻ لاء، ڊاکر exec ڪمانڊ کي هلائڻ لاء :
Docker سان پهرين واقفيت - 15
مان سفارش ڪريان ٿو پڙهڻ لاءِ ڊڪر نموني جي وضاحت هڪ بهترين وضاحت لاءِ ته اهو سڀ ڪيئن ٿئي ٿو: “ 1.0 توهان جي پهرين ڪنٽينر کي هلائڻ ”. مون کي اهو پسند آهي ڇاڪاڻ ته هر شي اتي لکيل آهي تمام پهچ ۽ سمجھڻ واري انداز ۾. مختصر طور تي ٻيهر بيان ڪرڻ لاءِ، اسان ڊاڪر-مشين استعمال ڪندي ڊاڪر ڊيمن تي هلندڙ ورچوئل مشين سان ڳنڍيل آهيون. REST API تي CLI استعمال ڪندي، اسان الپائن تصوير کي لانچ ڪرڻ لاءِ پڇون ٿا. Docker ان کي ڳولي ٿو ۽ تنهن ڪري ان کي ڊائون لوڊ نٿو ڪري. Docker هڪ نئون ڪنٽينر ٺاهي ٿو ۽ حڪم هلائي ٿو جيڪو اسان هن ڪنٽينر ۾ بيان ڪيو آهي. ۽ اهو سڀ ڪجهه، يقينا، سٺو آهي. پر اسان کي اهو سڀ ڪجهه ڇو گهرجي؟ ۽ هتي اسان کي اهو سمجهڻ جي ضرورت آهي ته ڪيئن ڊاکر هڪ تصوير ٺاهي ٿو. ۽ هو انهن کي ٺاهي ٿو ڊاکرفائل جي بنياد تي.
ڊڪر جو پهريون تعارف - 16

Dockerfile

جيئن بيان ڪيو ويو آهي Dockerfile ريفرنس ۾ ، هڪ dockerfile هڪ ٽيڪسٽ فائل آهي جنهن ۾ هڪ تصوير حاصل ڪرڻ لاء سڀني حڪمن تي مشتمل آهي. حقيقت ۾، سڀئي تصويرون جيڪي اسان حاصل ڪندا آهيون (جيتوڻيڪ الپائن، مٿين مثال کان) هڪ ڊڪر فائل مان ٺاهيا ويا آهن. اچو ته اسان جي تصوير کي جاوا ايپليڪيشن سان ٺاهيو. ۽ پهرين اسان کي هن جاوا ايپليڪيشن جي ضرورت آهي. مان تجويز ڪريان ٿو Gradle بلڊ سسٽم کي استعمال ڪرڻ، جنهن بابت توهان هن مختصر جائزو ۾ وڌيڪ پڙهي سگهو ٿا: “ گريڊل جو مختصر تعارف ”. پروجيڪٽ ٺاهڻ ۾ اسان جي مدد ڪندو " Gradle Build init plugin ". اچو ته Gradle استعمال ڪندي هڪ نئين جاوا ايپليڪيشن ٺاهي: gradle init --type java-application هي ڪمانڊ هڪ ٽيمپليٽ جاوا پروجيڪٽ ٺاهي ٿو. هي هڪ اسٽينڊل ايپليڪيشن آهي، پر اسان هڪ ويب ايپليڪيشن ٺاهڻ چاهيون ٿا. اچو ته ايپ ۽ ايپ ٽيسٽ ڪلاسز کي ختم ڪريون (اهي خود بخود Gradle Build Init Plugin ذريعي ٺاهيا ويا). جلدي ويب ايپليڪيشن ٺاهڻ لاءِ، اسان استعمال ڪنداسين ٽيوٽوريل Gradle مان: “ Bilding Java Web Applications ”. سبق جي مطابق، اچو ته: توهان کي هتي محتاط رهڻو پوندو. هميشه وانگر، مثالن ۾ غلطيون ٿي سگھي ٿي. هتي اهو آهي:
ڊاڪر جو پهريون تعارف - 17
ھاڻي، ان کي جانچڻ لاءِ، اچو ته gretty پلگ ان کي build.gradle ۾ شامل ڪريون، جيئن اشارو ڪيو ويو آھي " گرٽي پلگ ان شامل ڪريو ۽ ايپ کي ھلايو " سيڪشن:
plugins {
    id 'war'
    id 'org.gretty' version '2.2.0'
}
اهو دلچسپ آهي ته گريٽي ۾ غلطي نه ڏسي HelloServlet، جيڪا مٿي بيان ڪئي وئي آهي. اهو ثابت ٿئي ٿو ته هڪ ايپليڪيشن مختلف ماحول ۾ مختلف طريقي سان ڪم ڪري سگهي ٿي. گريٽي ڪم ڪري سگهي ٿو جتي هڪ باقاعده اسٽينڊل سرور هڪ غلطي اڇلائي ها. اهو سڀ ڪجهه باقي رهي ٿو چيڪ ڪرڻ لاء ته ايپليڪيشن صحيح ڪم ڪري رهي آهي. اچو ته ڪريون:gradle appRun
Docker سان پهرين واقفيت - 18
جيڪڏهن سڀ ڪجهه ٺيڪ آهي، پوءِ آرڪائيو گڏ ڪرڻ لاءِ ڪمانڊ استعمال ڪريو gradle warايڪسٽينشن وار (ويب آرڪائيو) سان. ڊفالٽ طور، gradle ان ۾ ٺاهي ٿو \build\libs. هاڻي، اسان تيار آهيون اسان جي dockerfile لکڻ لاء. " Dockerfile ريفرنس " استعمال ڪندي اسان هڪ Dockerfile ٺاهينداسين. اچو ته اسان جي جاوا پروجيڪٽ جي روٽ ۾ "Dockerfile" نالي هڪ فائل ٺاهيو (ساڳئي جاءِ تي جيئن بلڊ اسڪرپٽ). اچو ته ان کي ايڊٽ ڪرڻ لاءِ کوليون. هن فائل جي پنهنجي شڪل آهي، جنهن ۾ بيان ڪيل آهي " Dockerfile reference: Format " سيڪشن. ڪو به ڊاڪرفائل هڪ FROM بيان سان شروع ٿئي ٿو، ظاهر ڪري ٿو "بنيادي تصوير". اسان اهو چئي سگهون ٿا ته هي والدين جي تصوير آهي جنهن جي بنياد تي اسان پنهنجي تصوير ٺاهيندا آهيون. اسان لاءِ والدين جي تصوير چونڊڻ تمام آسان آهي. ويب ايپليڪيشن کي ويب سرور جي ضرورت آهي. مثال طور، اسان استعمال ڪري سگھون ٿا Tomcat ويب سرور. اسان وڃون ٿا سرڪاري Docker مخزن، جنهن کي سڏيو ويندو آهي ڊڪر هب . اسان اتي ڏسون ٿا ته ڇا تصوير اسان کي گهربل آهي اتي آهي:
Docker سان پهرين واقفيت - 19
اهو پڻ سمجهڻ جي قابل آهي ته ٽامڪٽ تصوير سڏيو ويندو آهي. پر نالي کان علاوه ان ۾ هڪ ٽيگ به آهي. هڪ ٽيگ هڪ نسخو وانگر آهي. Tomcat تصويرن جي مختلف نسخن ۾ فرق آهي Tomcat جو ڪهڙو نسخو استعمال ڪيو ويو آهي، ڪهڙو نسخو jre ۽ ڪهڙي بنيادي تصوير. مثال طور، اسان هڪ تصوير حاصل ڪري سگهون ٿا docker pull tomcat:9-jre8-alpine اهو استعمال ڪري ٿو نسخو 9 جو tomcat، jre نسخو 8 ۽ الپائن تصوير بنيادي طور تي. اهو اسان جي تصوير جي سائيز کي گهٽائڻ لاء اهم ٿي سگهي ٿو:
ڊاڪر جو پهريون تعارف - 20
جيئن اسان ڏسي سگهون ٿا، فرق تمام وڏو آهي. جيڪڏھن اسان پنھنجي تصوير کي ٽامڪاٽا الپائن جي بنياد تي ٺاھيون ٿا، اسان صرف 100 ميگا بائيٽ سان شروع ڪنداسين، ۽ 600 سان نه.
# Базовый образ, "наследуемся" от него
FROM tomcat:9-jre8-alpine
# Копируем из Build Context'а собранный web archive в каталог томката
COPY build/libs/docker.war /usr/local/tomcat/webapps/docker.war
# Меняем рабочий каталог на томкатовский
WORKDIR /usr/local/tomcat
# Открываем порт 8080 для контейнера, т.к. его слушает томкат
EXPOSE 8080
۽ ھاڻي اچو ته تصوير ٺاھڻ لاءِ حڪم جاري ڪريون: docker build -t jrdocker ..
Docker سان پهرين واقفيت - 21
-t- هي هڪ ٽيگ آهي، اهو آهي، گڏ ڪيل تصوير کي ڇا سڏيو وڃي. آخر ۾ ڊٽ جو مطلب آهي ته اسان موجوده ڊاريڪٽري شامل ڪريون ٿا (ڊائريڪٽري جتي ڊاکرفائل واقع آهي ۽ جتي اسان ڪمانڊ هلائيندا آهيون) کان Build context. Build context- اھو انھن فائلن جو حوالو آھي جيڪي دستياب آھن جڏھن ھڪڙي ڊڪر فائل ٺاھيو. جئين توهان ڏسي سگهو ٿا، انهي جي مهرباني اسان اسان جي تصوير ۾ گڏ ڪيل جنگ فائل کي نقل ڪرڻ جي قابل ٿي ويا، ويب سرور ڊاريڪٽري ۾. هاڻي اچو ته اسان جي تصوير کي هلون:docker run -d --rm -p 8888:8080 jrdocker
Docker سان پهرين واقفيت - 22
اهو سمجهڻ لاءِ ته ڇا سرور شروع ٿي چڪو آهي، توهان ڏسي سگهو ٿا لاگ ان ڪنٽينر مان. لاگ ڊاکر لاگز ڪمانڊ استعمال ڪندي حاصل ڪري سگھجي ٿو، ڪنٽينر کي ان جي ID يا نالي سان بيان ڪندي. مثال طور:
Docker سان پهرين واقفيت - 23
خير، اهو نه وساريو ته اسان هميشه هڪ هلندڙ ڪنٽينر ڏانهن وڃي سگهون ٿا نالي سان حڪم سان: winpty docker exec -it NameКонтейнера sh هاڻي اهو سڀ ڪجهه رهجي ويو آهي ڳنڍڻ. اڳي، اسان وضاحت ڪئي EXPOSE ، يعني، اسان بندرگاهه 8080 تائين پهچ جي اجازت ڏني ڪنٽينر جي اندر. جڏهن اسان پاڻ ئي ڪنٽينر کي لانچ ڪيو، اسان -p ( انڪمنگ بندرگاهن ) ٽيگ جي وضاحت ڪئي، ان ڪري ڪنٽينر تي بندرگاهه 8080 سان واسطو رکي ٿو (Tomcat ويب سرور. اتي ڪنيڪشن جو انتظار ڪري رهيو آهي) بندرگاهه 8888 سان هڪ مشين تي ڊڪر ڊيمن سان. جيئن اسان کي ياد آهي، اسان لانچ ڪيو ڊاڪر ڊيمون سڌو نه، پر ڊاکر-مشين ذريعي. تنهن ڪري، اچو ته هڪ ڀيرو ٻيهر اسان جي ڊاکر مشينن تي ڊيٽا لاء پڇون ڊاڪر-مشين ls ڪمانڊ استعمال ڪندي ۽ ڪنٽينر ۾ سرور سان رابطو ڪريو:
Docker جو پهريون تعارف - 24
اهڙيء طرح، توهان ۽ مون صرف اسان جي ويب ايپليڪيشن کي ڊاکر ڪنٽينر ۾ شروع ڪيو آهي! ) مان پڻ هيٺين کي نوٽ ڪرڻ چاهيندس. رسائي جي مسئلن جي صورت ۾، توهان کي ياد رکڻ گهرجي ته Docker مشين پهرين ۽ سڀ کان پهرين هڪ مجازي BOx مجازي مشين آهي. ورچوئل مشين جي نيٽ ورڪ سيٽنگن ۾ مسئلا ٿي سگھن ٿا. هڪ ڪم ڪندڙ VMBox ترتيب هن طرح نظر اچي سگهي ٿي:
Docker سان پهرين واقفيت - 25
Docker سان پهرين واقفيت - 26

پرت

اسان اڳ ۾ ئي ڄاڻايو آهي ته تصويرون ڊاکرفائلز مان ٺاهيا ويا آهن ۽ اهي ڊڪر فائلون حڪمن جو هڪ سيٽ آهن. اسان اهو پڻ معلوم ڪيو آهي ته هڪ ڊاکرفائل هڪ والدين آهي. ۽ تصويرن جي سائيز مختلف آهي. دلچسپ ڳالهه اها آهي ته توهان تاريخ ڏسي سگهو ٿا ته تصوير ڪيئن ٺاهي وئي استعمال ڪندي ڊڪر تاريخ ڪمانڊ . مثال طور:
Docker سان پهرين واقفيت - 27
اهو سمجهڻ لاءِ اهو چوڻ ضروري آهي ته، جوهر ۾، هر تصوير تصويرن جو هڪ مجموعو آهي. هر تصوير جي تبديلي (ڊاڪر فائل ۾ هر نئين حڪم) هڪ نئين پرت ٺاهي ٿي جنهن جي پنهنجي سڃاڻپ آهي. توھان وڌيڪ پڙھي سگھوٿا تہن بابت دستاويزي دستاويز ۾ " Docker: Images and Layers ". مان هيبري تي آرٽيڪل پڙهڻ جي پڻ سفارش ڪريان ٿو: " ڊاڪر تصويرون ۽ ڪنٽينرز ۾ تصويرون ."

نتيجو

مون کي اميد آهي ته هي مختصر جائزو توهان کي ڪنٽينرائزيشن ۾ دلچسپي وٺڻ لاءِ ڪافي هو. هيٺ ڏنل اضافي مواد جا لنڪ آهن جيڪي مفيد ٿي سگهن ٿيون: #وياچسلاو
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION