ڪنٽينرائزيشن هڪ ميکانيزم آهي جيڪو اڪثر عملي طور تي استعمال ٿيندو آهي. مثال طور، جڏهن توهان ڳولا ڪريو headhunter تي، توهان کي ڳوليندا 477 خالي جايون اڄ تائين جيڪي ڊڪر جو ذڪر ڪن ٿا. تنهن ڪري، اهو خراب خيال نه هوندو ته پنهنجو پاڻ کي واقف ڪرڻ لاء اهو ڇا آهي. مون کي اميد آهي ته هي مختصر جائزو پهريون خيال ٺاهڻ ۾ مدد ڪندو. يقينن، هو ان کي اضافي مواد سان گڏ ڪندو، جهڙوڪ Udemy تي ڪورس.
ونڊوز تي توهان هن کي مختلف طريقن سان چيڪ ڪري سگهو ٿا. مثال طور، توهان Microsoft ويب سائيٽ تان هڪ خاص يوٽيلٽي ڊائون لوڊ ڪري سگهو ٿا: هارڊويئر-اسسٽڊ ورچوئلائيزيشن ڊيٽيڪشن ٽول . خير، اهو هڪ ٻيو اهم تصور جو ذڪر ڪرڻ جي قابل آهي - Hypervisor. Hypervisor هڪ مجازي مشين مانيٽر آهي، هڪ ئي ڪمپيوٽر تي ڪيترن ئي آپريٽنگ سسٽم جي متوازي عمل کي يقيني بڻائڻ لاء هڪ پروگرام. هائپرائزر انهي ڳالهه کي يقيني بڻائي ٿو ته آپريٽنگ سسٽم هڪ ٻئي کان الڳ آهن ۽ هلندڙ او ايسز جي وچ ۾ وسيلن کي حصيداري ڪن ٿا. هڪ اهڙو هائپرائزر آهي Oracle VirtualBox .
دستاويز چوي ٿو ته ڊڪر تي مشتمل آهي:
اچو ته هڪ نئين مشين ٺاهي. هن کي ڪرڻ لاء، اسان کي ٺاهڻ جي حڪم کي هلائڻ جي ضرورت آهي :
هتي اسان کي ڪهڙي دلچسپي آهي، هيٺ ڏنل آهي. Boot2Docker ڇا آهي؟ هي ڊڪر انجڻ کي هلائڻ لاءِ هڪ گهٽ ۾ گهٽ لينڪس ڊويزن آهي (اسان سمجهون ٿا ته ڊڪر ڪم ڪري ٿو لينڪس ورچوئلائيزيشن ٽولز جي مهرباني، ۽ ونڊوز ۾ ضروري ميکانيزم ظاهر ٿيو صرف ونڊوز 10 سان شروع ٿئي ٿو). هي تقسيم تي ٻڌل آهي " Tiny Core Linux " تقسيم. VirtualBox VM بابت پڻ ذڪر ڪيو ويو آهي. اھو آھي ڇو جو اسان بيان ڪيو آھي
ٺاھڻ کان پوء، اسان کي حڪم " docker-machine env " هلائڻ لاء چيو ويندو ماحول جي متغير حاصل ڪرڻ لاء جيڪي ڊاکر مشين سان ڳنڍڻ لاء ترتيب ڏيڻ جي ضرورت آھي:
docker-machine استعمال ڪندي هن حڪم تي عمل ڪرڻ کان پوء، اسان هڪ ريموٽ ڊاکر ٿيل ميزبان سان ڳنڍيندا آهيون (هن صورت ۾، هڪ مجازي هڪ مجازي باڪس تي ميزباني ڪيل آهي) ۽ مقامي طور تي ڊڪر ڪمانڊ تي عمل ڪري سگهون ٿا ڄڻ ته اسان انهن کي ريموٽ ميزبان تي عمل ڪري رهيا آهيون. چيڪ ڪرڻ لاء، اسان هلائي سگهون ٿا " docker info " حڪم. جيڪڏهن ڊاکر مشين سان ڪنيڪشن قائم نه آهي، اسان کي هڪ غلطي ملي ويندي. ۽ جيڪڏھن سڀ ڪجھ ٺيڪ آھي، ڊاڪر مشين تي ڊاکر بابت ڄاڻ. ھاڻي اھو وقت آھي سمجھڻ جو ڊڪر عام طور تي ڪيئن ڪم ڪري ٿو ۽ ان کي ڪيئن استعمال ڪجي.
جيئن اسان ڏسي سگهون ٿا، اسان ڪنهن هنڌ تان ڊائون لوڊ ڪري رهيا آهيون. ڊفالٽ طور، Docker نيٽ ورڪ تي ان جي مخزن کي ڏسي ٿو https://hub.docker.com . تصوير کي ڪاميابيءَ سان حاصل ڪرڻ کان پوءِ، اسان ڊاڪر اميجز ڪمانڊ کي هلائڻ سان دستياب تصويرن جي لسٽ چيڪ ڪري سگھون ٿا :
هاڻي اسان وٽ هڪ اپلائن تصوير آهي. جيئن ته ڪنٽينر تصوير جو هڪ هلندڙ مثال آهي، اچو ته هن تصوير کي شروع ڪريون. اچو ته ڪمانڊ استعمال ڪندي ڪنٽينر کي لانچ ڪريون
شيء اها آهي ته اسان ڊاکر کي انٽرويو موڊ ۾ لانچ نه ڪيو. تنهن ڪري، هن حڪم تي عمل ڪيو ۽ روانو ٿيو. ٽرمينل کولڻ جو حڪم هو. اچو ته ساڳيو ڪم ڪريون، پر انٽرايڪٽو موڊ ۾ ( -it flag سان ):
جئين توهان ڏسي سگهو ٿا، هڪ غلطي تي قابو پائڻ ۽ اشارو استعمال ڪندي، اسان ڪنٽينر ڏانهن ويا ۽ ان ۾ ڪم ڪري سگهون ٿا! ان جي آپريشن کي روڪڻ کان سواء ڪنٽينر مان نڪرڻ لاء، توھان دٻائي سگھو ٿا
مان سفارش ڪريان ٿو پڙهڻ لاءِ ڊڪر نموني جي وضاحت هڪ بهترين وضاحت لاءِ ته اهو سڀ ڪيئن ٿئي ٿو: “ 1.0 توهان جي پهرين ڪنٽينر کي هلائڻ ”. مون کي اهو پسند آهي ڇاڪاڻ ته هر شي اتي لکيل آهي تمام پهچ ۽ سمجھڻ واري انداز ۾. مختصر طور تي ٻيهر بيان ڪرڻ لاءِ، اسان ڊاڪر-مشين استعمال ڪندي ڊاڪر ڊيمن تي هلندڙ ورچوئل مشين سان ڳنڍيل آهيون. REST API تي CLI استعمال ڪندي، اسان الپائن تصوير کي لانچ ڪرڻ لاءِ پڇون ٿا. Docker ان کي ڳولي ٿو ۽ تنهن ڪري ان کي ڊائون لوڊ نٿو ڪري. Docker هڪ نئون ڪنٽينر ٺاهي ٿو ۽ حڪم هلائي ٿو جيڪو اسان هن ڪنٽينر ۾ بيان ڪيو آهي. ۽ اهو سڀ ڪجهه، يقينا، سٺو آهي. پر اسان کي اهو سڀ ڪجهه ڇو گهرجي؟ ۽ هتي اسان کي اهو سمجهڻ جي ضرورت آهي ته ڪيئن ڊاکر هڪ تصوير ٺاهي ٿو. ۽ هو انهن کي ٺاهي ٿو ڊاکرفائل جي بنياد تي.
ھاڻي، ان کي جانچڻ لاءِ، اچو ته gretty پلگ ان کي build.gradle ۾ شامل ڪريون، جيئن اشارو ڪيو ويو آھي " گرٽي پلگ ان شامل ڪريو ۽ ايپ کي ھلايو " سيڪشن:
جيڪڏهن سڀ ڪجهه ٺيڪ آهي، پوءِ آرڪائيو گڏ ڪرڻ لاءِ ڪمانڊ استعمال ڪريو
اهو پڻ سمجهڻ جي قابل آهي ته ٽامڪٽ تصوير سڏيو ويندو آهي. پر نالي کان علاوه ان ۾ هڪ ٽيگ به آهي. هڪ ٽيگ هڪ نسخو وانگر آهي. Tomcat تصويرن جي مختلف نسخن ۾ فرق آهي Tomcat جو ڪهڙو نسخو استعمال ڪيو ويو آهي، ڪهڙو نسخو jre ۽ ڪهڙي بنيادي تصوير. مثال طور، اسان هڪ تصوير حاصل ڪري سگهون ٿا
جيئن اسان ڏسي سگهون ٿا، فرق تمام وڏو آهي. جيڪڏھن اسان پنھنجي تصوير کي ٽامڪاٽا الپائن جي بنياد تي ٺاھيون ٿا، اسان صرف 100 ميگا بائيٽ سان شروع ڪنداسين، ۽ 600 سان نه.
اهو سمجهڻ لاءِ ته ڇا سرور شروع ٿي چڪو آهي، توهان ڏسي سگهو ٿا لاگ ان ڪنٽينر مان. لاگ ڊاکر لاگز ڪمانڊ استعمال ڪندي حاصل ڪري سگھجي ٿو، ڪنٽينر کي ان جي ID يا نالي سان بيان ڪندي. مثال طور:
خير، اهو نه وساريو ته اسان هميشه هڪ هلندڙ ڪنٽينر ڏانهن وڃي سگهون ٿا نالي سان حڪم سان:
اهڙيء طرح، توهان ۽ مون صرف اسان جي ويب ايپليڪيشن کي ڊاکر ڪنٽينر ۾ شروع ڪيو آهي! ) مان پڻ هيٺين کي نوٽ ڪرڻ چاهيندس. رسائي جي مسئلن جي صورت ۾، توهان کي ياد رکڻ گهرجي ته Docker مشين پهرين ۽ سڀ کان پهرين هڪ مجازي BOx مجازي مشين آهي. ورچوئل مشين جي نيٽ ورڪ سيٽنگن ۾ مسئلا ٿي سگھن ٿا. هڪ ڪم ڪندڙ VMBox ترتيب هن طرح نظر اچي سگهي ٿي:
اهو سمجهڻ لاءِ اهو چوڻ ضروري آهي ته، جوهر ۾، هر تصوير تصويرن جو هڪ مجموعو آهي. هر تصوير جي تبديلي (ڊاڪر فائل ۾ هر نئين حڪم) هڪ نئين پرت ٺاهي ٿي جنهن جي پنهنجي سڃاڻپ آهي. توھان وڌيڪ پڙھي سگھوٿا تہن بابت دستاويزي دستاويز ۾ " Docker: Images and Layers ". مان هيبري تي آرٽيڪل پڙهڻ جي پڻ سفارش ڪريان ٿو: " ڊاڪر تصويرون ۽ ڪنٽينرز ۾ تصويرون ."
تعارف
هن مختصر جائزي ۾ آئون هڪ موضوع تي رابطو ڪرڻ چاهيندس جهڙوڪ ڪنٽينرائزيشن. ۽ توهان کي سمجھڻ سان شروع ڪرڻ جي ضرورت آهي ته ڪنٽينرائزيشن اصل ۾ ڇا آهي. وڪيپيڊيا جي مطابق، " ڪنٽينرائيزيشن " آپريٽنگ سسٽم-سطح (يعني هارڊويئر نه ) ورچوئلائيزيشن آهي جنهن ۾ آپريٽنگ سسٽم ڪرنل صرف هڪ جي بدران ڪيترن ئي الڳ ٿيل يوزر اسپيس مثالن کي برقرار رکي ٿو. " يوزر اسپيس " آپريٽنگ سسٽم جي ورچوئل ميموري ايڊريس اسپيس آهي جيڪا يوزر پروگرامن لاءِ مخصوص ڪئي وئي آهي. يوزر اسپيس جا مثال (عام طور تي ڪنٽينر سڏجن ٿا) استعمال ڪندڙ جي نقطه نظر کان هڪ واحد آپريٽنگ سسٽم مثال سان مڪمل طور تي هڪجهڙا آهن. ڪنٽينر مڪمل ڪنٽينر جي اڪيلائي کي يقيني بڻائي ٿو، تنهنڪري مختلف ڪنٽينرز جا پروگرام هڪ ٻئي تي اثر انداز نٿا ڪري سگهن. اهو ظاهر ٿئي ٿو ته ڪنٽينرائيزيشن سافٽ ويئر ورچوئلائيزيشن آهي، اهو آهي، آپريٽنگ سسٽم جي سطح تي ورچوئلائيزيشن، جنهن لاء آپريٽنگ سسٽم ڪرنل ذميوار آهي. هن طريقي جي خاصيتن مان هڪ خاصيت اها آهي ته سڀئي ڪنٽينر هڪ عام ڪنيل استعمال ڪندا آهن، ساڳيو ميزبان آپريٽنگ سسٽم (يعني اهو آهي، جنهن تي ڪنٽينر واقع آهن). هي توهان کي مجازي هارڊويئر کي متحرڪ ڪرڻ ۽ آپريٽنگ سسٽم جو هڪ مڪمل مثال شروع ڪرڻ جي اوور هيڊ کان نجات حاصل ڪرڻ جي اجازت ڏئي ٿو. اسان چئي سگهون ٿا ته هي آهي "هلڪو وزن" ورچوئلائيزيشن. ڪرنل OS جو مرڪزي حصو آهي جيڪو ايپليڪيشنن کي ڪمپيوٽر جي وسيلن تائين هموار ٿيل رسائي فراهم ڪري ٿو، جهڙوڪ پروسيسر ٽائيم، ميموري، خارجي هارڊويئر، ۽ خارجي ان پٽ ۽ آئوٽ پٽ ڊوائيسز. ڪنيل پڻ عام طور تي مهيا ڪري ٿي فائيل سسٽم ۽ نيٽ ورڪ پروٽوڪول خدمتون. عام طور تي، هي سڄي نظام جي دل آهي. اضافي معلومات لاء، اهو مفيد ٿي سگھي ٿو ته مواد جو جائزو وٺو " ڪنٽينر بابت عام معلومات ". ۽ ڪجھ وڌيڪ لفظ تعارف مڪمل ڪرڻ لاء. اسان کي ھاڻي سمجھ ۾ اچي ويو آھي ته ھڪڙي آپريٽنگ سسٽم ۾ ھڪڙو ڪنيل آھي. اهو صارف جي جڳهه جي مثالن لاءِ اڪيلائي فراهم ڪري ٿو. ان حوالي سان، توھان کي " cgroups " اصطلاح ملندو . هي لينڪس ڪنيل ميڪانيزم جو نالو آهي جيڪو توهان کي حاصل ڪرڻ جي اجازت ڏئي ٿو. تنهن ڪري، اسان اهو چئي سگهون ٿا ته ڪنٽينرائزيشن جو رستو لينڪس سسٽم سان شروع ٿيو. بهرحال، ونڊوز 10 سان شروع ڪندي، ڪنٽينرائيزيشن لاءِ سپورٽ پڻ ظاهر ٿي. ورچوئلائيزيشن سان ڪم ڪرڻ لاءِ، توهان کي پنهنجي ڪمپيوٽر جي BIOS ۾ ورچوئلائيزيشن سپورٽ ترتيب ڏيڻ جي ضرورت آهي. اهو ڪيئن ڪجي ڪمپيوٽر تي منحصر آهي. مثال طور، اهو هن طرح نظر اچي سگهي ٿو:ڊاڪر
تنهن ڪري، ڇا ورچوئلائزيشن واضح آهي. پر ان کي ڪيئن استعمال ڪجي؟ ۽ هتي Docker اسان جي مدد لاء اچي ٿو. ڊاکر ڪنٽينر ٿيل ماحول ۾ ايپليڪيشنن جي ترتيب ۽ انتظام کي خودڪار ڪرڻ لاءِ سافٽ ويئر آهي. اهو ان حقيقت سان شروع ڪرڻ جي قابل آهي ته ڊاکر اهڙي تصور جي نمائندگي ڪري ٿو جهڙوڪ ڊڪر اينگنگ. ۽ توھان کي شروع ڪرڻ گھرجي سرڪاري ڊڪر ويب سائيٽ ۽ ” ڊاڪر جو جائزو “ سيڪشن.- Docker سرور کي Docker Daemon پروسيس (dockerd) سڏيو ويندو آهي.
- ڪمان لائن انٽرفيس، CLI (ڊاڪر) جي نالي سان پڻ سڃاتو وڃي ٿو.
- هڪ REST API جيڪو بيان ڪري ٿو ته پروگرام ڪيئن "ڳالهه" ڪري سگهن ٿا ڊيمن سان ۽ ان کي ٻڌايو ته ڇا ڪجي.
ڊڪر ٽول باڪس
ڊاڪر کي انسٽال ڪرڻ لاءِ پراڻي مشينن تي جيڪي سسٽم گهرجن کي پورا نه ڪن. ويب سائيٽ ائين چوي ٿي، "ليگيسي ڊيسڪ ٽاپ حل". اچو ته وڃو " ڊاڪر ٽول باڪس " صفحي ۽ ان کي ڊائون لوڊ ڪريو. هن سيٽ جو وزن اٽڪل 211 ميگا بائيٽ آهي. اسان ان کي ڊفالٽ جي طور تي انسٽال ڪنداسين، اهو آهي، اسان صرف جھنڊن کي ترتيب ڏيڻ کان سواء هر شيء سان نرمي سان متفق ڪنداسين. انسٽاليشن کان پوء، اسان چيڪ ڪنداسين ته هر شيء ٺيڪ آهي. مستقبل ۾، اسان جي جنگ جو ميدان ڪمان لائن هوندو. مان سفارش ڪريان ٿو Windows ڪمانڊ لائن استعمال نه ڪريو، ڇو ته ان سان گڏ غير واضح مسئلا ٿي سگھن ٿا. اهو بهتر آهي بش شيل استعمال ڪرڻ. ونڊوز تي، ان کي حاصل ڪرڻ جو سڀ کان وڌيڪ تجويز ڪيل طريقو آهي انسٽال ڪرڻ گٽ ورزن ڪنٽرول سسٽم ، اهو اڃا به ڪم ۾ ايندو. ڇاڪاڻ ته ”بنڊل“ ان سان گڏ بيش هوندو جنهن جي اسان کي ضرورت آهي. ھن جائزي لاءِ مان استعمال ڪندس git bash. توهان به انسٽال ڪري سگهو ٿا bash سان CYGWIN . اچو ته لانچ ڪريون bash يا git bash. اچو ته پڪ ڪريون ته اسان ڊاڪر مشين انسٽال ڪئي آهي، جنهن کي ڊاڪر مشين به چيو ويندو آهي:docker-machine -version
هي ڊڪر مشين ڇا آهي؟ Docker Machine ڊاکر ٿيل ميزبانن کي منظم ڪرڻ لاءِ هڪ افاديت آهي (اهي اهي ميزبان آهن جن تي ڊڪر انجڻ نصب ٿيل آهي). جيڪڏهن اسان انسٽال ڪرڻ کان پوءِ فوري طور تي Docket Toolbox view docker مشينون ڪمانڊ استعمال ڪندي docker-machine ls
، اسان هڪ خالي فهرست ڏسندا:
docker-machine create -- driver virtualbox javarush
: اسان ڏسندا سين ڊڪر مشين ٺاهڻ لاگ:
--driver virtualbox
. هڪ نئين مجازي مشين ٺاهي وئي VirtualBox ۾ Boot2Docker تصوير مان. ٺاھڻ کان پوء، اسان VirtualBox لانچ ڪري سگھون ٿا (جيئن ته VirtualBox Docker Toolbox سان نصب ٿيل آھي) ۽ ڊاکر مشين لاء ٺاھيل ورچوئل مشين ڏسو:
ڊاکر ڪنٽينرز
تنهنڪري اسان وٽ ڊڪر آهي. هي ڊاکر به ڇا آهي؟ Docker دستاويزن ۽ " شروع ڪريو " سيڪشن اسان کي انهي کي سمجهڻ ۾ مدد ڏيندو . هن حصي جو تعارفي حصو Docker Concepts متعارف ڪرايو آهي . اهو ٻڌائي ٿو ته ڊڪر هڪ پليٽ فارم آهي ترقي ڪرڻ، ڊيبگنگ ۽ ايپليڪيشنن کي هلائڻ لاء ڪنٽينرز ۾. تنهن ڪري، Docker لاء بنيادي شيء ڪنٽينرز آهي. توڙي جو توهان ڊاڪر لوگو تي نظر وجهو، اها هڪ وهيل آهي جيڪا پنهنجي پٺي تي ڪنٽينر رکي ٿي. پر هڪ ڪنٽينر ڇا آهي؟ اڳيون " تصويرون ۽ ڪنٽينرز " سيڪشن ۾ اهو چوي ٿو ته هڪ ڪنٽينر تصوير جو هڪ هلندڙ مثال آهي. ۽ تصوير هڪ ”پيڪيج“ آهي جنهن ۾ ايپليڪيشن لاءِ گهربل هر شيءِ شامل آهي (ڪوڊ، ماحول، لائبريريون، سيٽنگون وغيره). هاڻي اچو ته پاڻ ڪوشش ڪريون. ڊاڪر ويب سائيٽ تي هڪ سيڪشن آهي جنهن کي سڏيو ويندو آهي " ڊاڪر نموني " جنهن ۾ شامل آهي " شروع ڪندڙن لاءِ ڊڪر ". هتان جا مثال مون کي وڌيڪ دلچسپ لڳي رهيا آهن. تنهن ڪري، اسان اوچتو الپائن لينڪس سان واقف ٿيڻ چاهيندا هئاسين ۽ اسان اهو ڪري سگهون ٿا ڊڪر ڪنٽينرز استعمال ڪندي. هڪ تصوير حاصل ڪرڻ لاء، اسان کي ان کي "ڪڍڻ" يا "ڪڍڻ" گهرجي. تنهن ڪري، اسان عمل ڪريون ٿا ڊڪر پل حڪم :docker pull apline
docker run alpine
. جيئن اسان ڏسون ٿا، ڪجھ به نه ٿيو. جيڪڏهن اسان سڀني فعال ڪنٽينرز کي ڊسپلي ڪرڻ لاء حڪم جاري ڪريون ٿا docker ps
، اسان کي ڪجھ به نه ملندو. پر جيڪڏهن اسان عمل ڪريون ٿا، docker ps -a
اسان سڀني ڪنٽينرز کي ڏسندا سين:
Ctrl + p + q
. جيڪڏهن اسان هاڻي هلون ٿا docker ps
، اسان هڪ فعال ڪنٽينر ڏسندا سين. اڳ ۾ ئي هلندڙ ڪنٽينر داخل ڪرڻ لاء، ڊاکر exec ڪمانڊ کي هلائڻ لاء :
Dockerfile
جيئن بيان ڪيو ويو آهي Dockerfile ريفرنس ۾ ، هڪ dockerfile هڪ ٽيڪسٽ فائل آهي جنهن ۾ هڪ تصوير حاصل ڪرڻ لاء سڀني حڪمن تي مشتمل آهي. حقيقت ۾، سڀئي تصويرون جيڪي اسان حاصل ڪندا آهيون (جيتوڻيڪ الپائن، مٿين مثال کان) هڪ ڊڪر فائل مان ٺاهيا ويا آهن. اچو ته اسان جي تصوير کي جاوا ايپليڪيشن سان ٺاهيو. ۽ پهرين اسان کي هن جاوا ايپليڪيشن جي ضرورت آهي. مان تجويز ڪريان ٿو Gradle بلڊ سسٽم کي استعمال ڪرڻ، جنهن بابت توهان هن مختصر جائزو ۾ وڌيڪ پڙهي سگهو ٿا: “ گريڊل جو مختصر تعارف ”. پروجيڪٽ ٺاهڻ ۾ اسان جي مدد ڪندو " Gradle Build init plugin ". اچو ته Gradle استعمال ڪندي هڪ نئين جاوا ايپليڪيشن ٺاهي:gradle init --type java-application
هي ڪمانڊ هڪ ٽيمپليٽ جاوا پروجيڪٽ ٺاهي ٿو. هي هڪ اسٽينڊل ايپليڪيشن آهي، پر اسان هڪ ويب ايپليڪيشن ٺاهڻ چاهيون ٿا. اچو ته ايپ ۽ ايپ ٽيسٽ ڪلاسز کي ختم ڪريون (اهي خود بخود Gradle Build Init Plugin ذريعي ٺاهيا ويا). جلدي ويب ايپليڪيشن ٺاهڻ لاءِ، اسان استعمال ڪنداسين ٽيوٽوريل Gradle مان: “ Bilding Java Web Applications ”. سبق جي مطابق، اچو ته:
- اچو ته بلڊ اسڪرپٽ build.gradle کي کوليون ۽ ان کي سيڪشن جي مطابق درست ڪريو: " Add a Gradle build file ".
- اچو ته صفحا شامل ڪريون src/main/webapp ۾ جيئن ڏيکاريل آهي " JSP صفحا شامل ڪريو ڊيمو ايپليڪيشن ۾ " سيڪشن.
- اچو ته
HelloServlet
مواد سان گڏ هڪ ڪلاس شامل ڪريون " پروجيڪٽ ۾ هڪ سروليٽ ۽ ميٽا ڊيٽا شامل ڪريو " سيڪشن.
plugins {
id 'war'
id 'org.gretty' version '2.2.0'
}
اهو دلچسپ آهي ته گريٽي ۾ غلطي نه ڏسي HelloServlet
، جيڪا مٿي بيان ڪئي وئي آهي. اهو ثابت ٿئي ٿو ته هڪ ايپليڪيشن مختلف ماحول ۾ مختلف طريقي سان ڪم ڪري سگهي ٿي. گريٽي ڪم ڪري سگهي ٿو جتي هڪ باقاعده اسٽينڊل سرور هڪ غلطي اڇلائي ها. اهو سڀ ڪجهه باقي رهي ٿو چيڪ ڪرڻ لاء ته ايپليڪيشن صحيح ڪم ڪري رهي آهي. اچو ته ڪريون:gradle appRun
gradle war
ايڪسٽينشن وار (ويب آرڪائيو) سان. ڊفالٽ طور، gradle ان ۾ ٺاهي ٿو \build\libs
. هاڻي، اسان تيار آهيون اسان جي dockerfile لکڻ لاء. " Dockerfile ريفرنس " استعمال ڪندي اسان هڪ Dockerfile ٺاهينداسين. اچو ته اسان جي جاوا پروجيڪٽ جي روٽ ۾ "Dockerfile" نالي هڪ فائل ٺاهيو (ساڳئي جاءِ تي جيئن بلڊ اسڪرپٽ). اچو ته ان کي ايڊٽ ڪرڻ لاءِ کوليون. هن فائل جي پنهنجي شڪل آهي، جنهن ۾ بيان ڪيل آهي " Dockerfile reference: Format " سيڪشن. ڪو به ڊاڪرفائل هڪ FROM بيان سان شروع ٿئي ٿو، ظاهر ڪري ٿو "بنيادي تصوير". اسان اهو چئي سگهون ٿا ته هي والدين جي تصوير آهي جنهن جي بنياد تي اسان پنهنجي تصوير ٺاهيندا آهيون. اسان لاءِ والدين جي تصوير چونڊڻ تمام آسان آهي. ويب ايپليڪيشن کي ويب سرور جي ضرورت آهي. مثال طور، اسان استعمال ڪري سگھون ٿا Tomcat ويب سرور. اسان وڃون ٿا سرڪاري Docker مخزن، جنهن کي سڏيو ويندو آهي ڊڪر هب . اسان اتي ڏسون ٿا ته ڇا تصوير اسان کي گهربل آهي اتي آهي:
docker pull tomcat:9-jre8-alpine
اهو استعمال ڪري ٿو نسخو 9 جو tomcat، jre نسخو 8 ۽ الپائن تصوير بنيادي طور تي. اهو اسان جي تصوير جي سائيز کي گهٽائڻ لاء اهم ٿي سگهي ٿو:
# Базовый образ, "наследуемся" от него
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 .
.
-t
- هي هڪ ٽيگ آهي، اهو آهي، گڏ ڪيل تصوير کي ڇا سڏيو وڃي. آخر ۾ ڊٽ جو مطلب آهي ته اسان موجوده ڊاريڪٽري شامل ڪريون ٿا (ڊائريڪٽري جتي ڊاکرفائل واقع آهي ۽ جتي اسان ڪمانڊ هلائيندا آهيون) کان Build context
. Build context
- اھو انھن فائلن جو حوالو آھي جيڪي دستياب آھن جڏھن ھڪڙي ڊڪر فائل ٺاھيو. جئين توهان ڏسي سگهو ٿا، انهي جي مهرباني اسان اسان جي تصوير ۾ گڏ ڪيل جنگ فائل کي نقل ڪرڻ جي قابل ٿي ويا، ويب سرور ڊاريڪٽري ۾. هاڻي اچو ته اسان جي تصوير کي هلون:docker run -d --rm -p 8888:8080 jrdocker
winpty docker exec -it NameКонтейнера sh
هاڻي اهو سڀ ڪجهه رهجي ويو آهي ڳنڍڻ. اڳي، اسان وضاحت ڪئي EXPOSE ، يعني، اسان بندرگاهه 8080 تائين پهچ جي اجازت ڏني ڪنٽينر جي اندر. جڏهن اسان پاڻ ئي ڪنٽينر کي لانچ ڪيو، اسان -p ( انڪمنگ بندرگاهن ) ٽيگ جي وضاحت ڪئي، ان ڪري ڪنٽينر تي بندرگاهه 8080 سان واسطو رکي ٿو (Tomcat ويب سرور. اتي ڪنيڪشن جو انتظار ڪري رهيو آهي) بندرگاهه 8888 سان هڪ مشين تي ڊڪر ڊيمن سان. جيئن اسان کي ياد آهي، اسان لانچ ڪيو ڊاڪر ڊيمون سڌو نه، پر ڊاکر-مشين ذريعي. تنهن ڪري، اچو ته هڪ ڀيرو ٻيهر اسان جي ڊاکر مشينن تي ڊيٽا لاء پڇون ڊاڪر-مشين ls ڪمانڊ استعمال ڪندي ۽ ڪنٽينر ۾ سرور سان رابطو ڪريو:
پرت
اسان اڳ ۾ ئي ڄاڻايو آهي ته تصويرون ڊاکرفائلز مان ٺاهيا ويا آهن ۽ اهي ڊڪر فائلون حڪمن جو هڪ سيٽ آهن. اسان اهو پڻ معلوم ڪيو آهي ته هڪ ڊاکرفائل هڪ والدين آهي. ۽ تصويرن جي سائيز مختلف آهي. دلچسپ ڳالهه اها آهي ته توهان تاريخ ڏسي سگهو ٿا ته تصوير ڪيئن ٺاهي وئي استعمال ڪندي ڊڪر تاريخ ڪمانڊ . مثال طور:نتيجو
مون کي اميد آهي ته هي مختصر جائزو توهان کي ڪنٽينرائزيشن ۾ دلچسپي وٺڻ لاءِ ڪافي هو. هيٺ ڏنل اضافي مواد جا لنڪ آهن جيڪي مفيد ٿي سگهن ٿيون:- Dockerfiles لکڻ لاءِ بهترين طريقا
- ڊاکر مشين استعمال ڪندي ريموٽ ميزبان تي ڪنٽينر
- هيبري آرٽيڪل " ڊڪر. شروعات "
- هيبري آرٽيڪل " ڊاڪر تصويرون کي بهتر ڪرڻ ".
- Udemy: " Docker سان شروع ڪرڻ "
- يوٽيوب: " ڊڪر سبق A کان Z تائين "
- ڊڪر سافٽ ويئر خاصيتون [GeekBrains]
GO TO FULL VERSION