Docker ۽ VMWare ورڪ اسٽيشن ساڳي ونڊوز مشين تي

ڪم سادو هو، ڊڪر کي منهنجي ڪم ڪندڙ ونڊوز ليپ ٽاپ تي رکيو، جنهن ۾ اڳ ۾ ئي هڪ زو آهي. مون ڊاڪر ڊيسڪ ٽاپ انسٽال ڪيو ۽ ڪنٽينرز ٺاهيا، سڀ ڪجھ ٺيڪ آهي، پر مون جلدي دريافت ڪيو ته VMWare ورڪ اسٽيشن هڪ غلطي سان ورچوئل مشينن کي هلائڻ بند ڪيو:

VMware Workstation and Device/Credential Guard are not compatible. VMware Workstation can be run after disabling Device/Credential Guard.

ڪم بند ٿي ويو آهي، مرمت جي فوري ضرورت آهي

Docker ۽ VMWare ورڪ اسٽيشن ساڳي ونڊوز مشين تي

گوگلنگ ڪندي، اهو معلوم ٿيو ته اها خرابي ساڳئي مشين تي VMWare ورڪ اسٽيشن ۽ Hyper-V جي غير مطابقت جي ڪري ٿيندي آهي. مسئلو معلوم ٿئي ٿو ۽ اتي ھڪڙو سرڪاري VMWare حل آھي درست ڪرڻ, Microsoft Knowledge Base جي لنڪ سان منظم ڪريو Windows Defender سندي گارڊ. حل اهو آهي ته محافظ سندي گارڊ کي غير فعال ڪيو وڃي (آئٽم 4 جو Windows Defender ڪريڊٽ گارڊ سيڪشن کي غير فعال ڪيو منهنجي مدد ڪئي):

mountvol X: /s
copy %WINDIR%System32SecConfig.efi X:EFIMicrosoftBootSecConfig.efi /Y
bcdedit /create {0cb3b571-2f2e-4343-a879-d86a476d7215} /d "DebugTool" /application osloader
bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} path "EFIMicrosoftBootSecConfig.efi"
bcdedit /set {bootmgr} bootsequence {0cb3b571-2f2e-4343-a879-d86a476d7215}
bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} loadoptions DISABLE-LSA-ISO
bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} device partition=X:
mountvol X: /d

ٻيهر شروع ڪرڻ کان پوء، ونڊوز پڇي ٿو ته ڇا توهان واقعي کي غير فعال ڪرڻ چاهيو ٿا محافظ سندي گارڊ. ها! هن طريقي سان، VMWare ورڪ اسٽيشن عام آپريشن ڏانهن موٽندو، ۽ اسان پاڻ کي ساڳي جاء تي ڳولي سگهنداسين جيئن ڊڪر کي نصب ڪرڻ کان اڳ.

مون کي ڪو حل نه مليو آهي ته ڪيئن ملائي Hyper-V ۽ VMWare ورڪ اسٽيشن، مون کي اميد آهي ته اهي نوان ورزن ۾ دوست بڻجي ويندا.

ٻيو طريقو

مان گهڻي وقت کان مختلف مقصدن لاءِ VMWare ورڪ اسٽيشن جو عادي ٿي چڪو آهيان، مون Hyper-V ۽ VirtualBox تي وڃڻ جي ڪوشش ڪئي، پر ڪارڪردگيءَ منهنجي ڪمن کي پورو نه ڪيو، ۽ تنهن ڪري مان اڄ ڏينهن تائين ويٺو آهيان. اهو ظاهر ٿيو ته هڪ حل آهي دوست ڪيئن ٺاهيو VMWare، Docker ۽ VSCode هڪ ڪم ڪندڙ ماحول ۾.

ڊڪر مشين - توهان کي اجازت ڏئي ٿو ڊڪر انجڻ کي هڪ مجازي ميزبان تي هلائڻ ۽ ان سان ڳنڍڻ ٻئي ۽ مقامي طور تي. ۽ ان لاءِ هڪ VMWare ورڪ اسٽيشن مطابقت وارو ڊرائيور آهي، github سان ڳنڍيو

مان تنصيب جي هدايتن کي خاص طور تي نه ٻڌايان ٿو، صرف اجزاء جي فهرست:

  1. ڊڪر ٽول باڪس (ڊڪر مشين شامل)
  2. Docker مشين VMware ورڪ اسٽيشن ڊرائيور
  3. ڊاکر ڊيسڪ

ها، ڊڪر ڊيسڪ ٽاپ، بدقسمتي سان، پڻ ضرورت پوندي. جيڪڏهن توهان ان کي ڊاهي ڇڏيو، ته ان کي ٻيهر انسٽال ڪريو، پر هن ڀيري او ايس ۾ تبديليون ڪرڻ بابت چيڪ بڪس کي هٽائي ڇڏيو، جيئن ته VMWare ورڪ اسٽيشن ٻيهر نه ڀڃي.

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

نتيجي طور، ٽيم:

$ docker-machine create --driver=vmwareworkstation dev

Boot2Docker مان، هڪ ديو ورچوئلڪا ٺاهي ويندي جنهن جي اندر Docker هوندو.

هي مجازي مشين سان لاڳاپيل وي ايم ايڪس فائل کولڻ سان VMWare ورڪ اسٽيشن GUI سان ڳنڍيل ٿي سگهي ٿو. پر اهو ضروري ناهي، ڇاڪاڻ ته VSCode کي هاڻي پاور شيل اسڪرپٽ هلائڻ جي ضرورت پوندي (ڪجهه سببن لاء، منهنجي ڊڪر-مشين ۽ ڊڪر-مشين-ڊرائيور-وي ايم ويئر اسٽيشن بن فولڊر ۾ ختم ٿي وئي):

cd ~/bin
./docker-machine env dev | Invoke-Expression
code

VSCode مقامي مشين تي ڪوڊ سان ڪم ڪرڻ لاءِ کوليو ويندو ۽ ورچوئل مشين ۾ ڊڪر. پلگ ان بصري اسٽوڊيو ڪوڊ لاءِ ڊڪر توهان کي ڪنسول ۾ وڃڻ کان سواءِ مجازي مشين ۾ ڪنٽينرز کي آساني سان منظم ڪرڻ جي اجازت ڏئي ٿي.

مشڪلاتون:

ڊاکر-مشين ٺاهڻ جي عمل ۾، عمل مون لاء ٽنگيو ويو:

Waiting for SSH to be available...

Docker ۽ VMWare ورڪ اسٽيشن ساڳي ونڊوز مشين تي

۽ ٿوري دير کان پوء ان کي مجازي مشين سان هڪ ڪنيڪشن قائم ڪرڻ جي ڪوشش جي اضافي سان ختم ٿي ويو.

اهو سڀ ڪجهه سرٽيفڪيٽ پاليسي بابت آهي. جڏهن هڪ ورچوئل مشين ٺاهيندي، توهان وٽ هوندو ~.dockermachinemachinesdev ڊاريڪٽري هن ڊاريڪٽري ۾ SSH ذريعي ڳنڍڻ لاءِ سرٽيفڪيٽ فائلون هونديون: id_rsa, id_rsa.pub. OpenSSH انھن کي استعمال ڪرڻ کان انڪار ڪري سگھي ٿو ڇاڪاڻ ته اھو سمجھي ٿو انھن کي اجازت جا مسئلا آھن. صرف ڊاڪر-مشين توهان کي ان بابت ڪجهه به نه ٻڌائيندي، پر صرف ٻيهر ڳنڍيندي جيستائين اهو بور نه ٿئي.

حل: جيئن ئي نئين ورچوئل مشين جي ٺهڻ شروع ٿئي ٿي، اسان ~ .dockermachinemachinesdev ڊاريڪٽري ڏانهن وڃون ٿا ۽ مخصوص فائلن جا حق تبديل ڪريون ٿا، هڪ وقت ۾.

فائل کي موجوده استعمال ڪندڙ جي ملڪيت هجڻ گهرجي، صرف موجوده صارف ۽ سسٽم کي مڪمل رسائي حاصل ڪرڻ گهرجي، ٻين سڀني صارفن کي، بشمول منتظمين جي گروپ ۽ پاڻ منتظمين کي ختم ڪيو وڃي.

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

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

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