ایک ہی ونڈوز مشین پر ڈوکر اور وی ایم ویئر ورک سٹیشن

کام آسان تھا، ڈوکر کو میرے ورکنگ ونڈوز لیپ ٹاپ پر رکھیں، جس میں پہلے سے چڑیا گھر ہے۔ میں نے ڈوکر ڈیسک ٹاپ انسٹال کیا اور کنٹینرز بنائے، سب کچھ ٹھیک ہے، لیکن میں نے جلدی سے دریافت کیا کہ VMWare ورک سٹیشن نے ایک خرابی کے ساتھ ورچوئل مشینیں چلانا بند کر دی ہیں۔

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

کام رک گیا ہے، اس کی مرمت کی اشد ضرورت ہے۔

ایک ہی ونڈوز مشین پر ڈوکر اور وی ایم ویئر ورک سٹیشن

گوگلنگ کرنے پر پتہ چلا کہ یہ ایرر ایک ہی مشین پر VMWare ورک سٹیشن اور Hyper-V کی عدم مطابقت کی وجہ سے ہوتی ہے۔ مسئلہ معلوم ہے اور اس طرح کا ایک سرکاری VMWare حل ہے۔ ٹھیک کریںمائیکروسافٹ نالج بیس کے لنک کے ساتھ ونڈوز ڈیفنڈر کریڈینشل گارڈ کا نظم کریں۔. اس کا حل یہ ہے کہ Defender Credential Guard کو غیر فعال کیا جائے (Windows Defender Credential Guard کو غیر فعال کرنے والے حصے کی آئٹم 4 نے میری مدد کی):

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

دوبارہ شروع کرنے کے بعد، ونڈوز پوچھے گا کہ کیا آپ واقعی Defender Credential Guard کو غیر فعال کرنا چاہتے ہیں۔ جی ہاں! اس طرح، VMWare ورک سٹیشن معمول کے کام پر واپس آجائے گا، اور ہم اپنے آپ کو اسی جگہ پر پائیں گے جیسے ڈوکر انسٹال کرنے سے پہلے تھا۔

میں نے Hyper-V اور VMWare ورک سٹیشن کو ملانے کے طریقے کا کوئی حل نہیں ڈھونڈا، مجھے امید ہے کہ وہ نئے ورژن میں دوست بن جائیں گے۔

ایک اور طریقہ

میں طویل عرصے سے مختلف مقاصد کے لیے VMWare ورک سٹیشن کا عادی ہوں، میں نے Hyper-V اور VirtualBox پر اترنے کی کوشش کی، لیکن فعالیت نے میرے کاموں کو پورا نہیں کیا، اور اسی لیے میں آج تک بیٹھا ہوں۔ یہ پتہ چلا کہ ایک کام کرنے والے ماحول میں دوست VMWare، Docker اور VSCode بنانے کا ایک حل موجود ہے۔

ڈوکر مشین - آپ کو ورچوئل ہوسٹ پر ڈوکر انجن چلانے اور اس سے دور دراز اور مقامی طور پر جڑنے کی اجازت دیتا ہے۔ اور اس کے لیے ایک VMWare ورک سٹیشن مطابقت والا ڈرائیور ہے، گیتھب سے لنک کریں۔

میں خاص طور پر تنصیب کی ہدایات کو دوبارہ نہیں بتاؤں گا، صرف اجزاء کی فہرست:

  1. ڈوکر ٹول باکس (ڈوکر مشین شامل)
  2. ڈوکر مشین VMware ورک سٹیشن ڈرائیور
  3. ڈوکر ڈیسک ٹاپ

ہاں، ڈوکر ڈیسک ٹاپ، بدقسمتی سے، بھی ضرورت ہو گی۔ اگر آپ نے اسے گرا دیا ہے، تو اسے دوبارہ انسٹال کریں، لیکن اس بار OS میں تبدیلیاں کرنے کے بارے میں چیک باکس کو ہٹا رہے ہیں، تاکہ VMWare ورک سٹیشن دوبارہ نہ ٹوٹے۔

میں فوری طور پر نوٹ کرنا چاہتا ہوں کہ ایک سادہ صارف سے سب کچھ ٹھیک کام کرتا ہے، انسٹالیشن پروگرام جب ضرورت ہو تو حقوق میں اضافے کا مطالبہ کریں گے، لیکن کمانڈ لائن اور اسکرپٹ پر موجود تمام کمانڈز موجودہ صارف کی طرف سے عمل میں لائی جاتی ہیں۔

نتیجے کے طور پر، ٹیم:

$ docker-machine create --driver=vmwareworkstation dev

Boot2Docker سے، ایک دیو ورچوئلکا بنایا جائے گا جس کے اندر ڈوکر ہوگا۔

اس ورچوئل مشین کو متعلقہ vmx فائل کو کھول کر VMWare ورک سٹیشن GUI سے منسلک کیا جا سکتا ہے۔ لیکن یہ ضروری نہیں ہے، کیونکہ VSCode کو اب PowerShell اسکرپٹ چلانے کی ضرورت ہوگی (کسی وجہ سے، میری docker-machine اور docker-machine-driver-vmwareworkstation بن فولڈر میں ختم ہوا):

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

VSCode ورچوئل مشین میں مقامی مشین اور ڈوکر پر کوڈ کے ساتھ کام کرنے کے لیے کھل جائے گا۔ رابطہ بحال کرو بصری اسٹوڈیو کوڈ کے لیے ڈاکر کنسول میں داخل ہوئے بغیر آپ کو ورچوئل مشین میں کنٹینرز کا آسانی سے انتظام کرنے کی اجازت دیتا ہے۔

مشکلات:

ڈوکر مشین بنانے کے عمل میں ، عمل میرے لئے لٹکا ہوا:

Waiting for SSH to be available...

ایک ہی ونڈوز مشین پر ڈوکر اور وی ایم ویئر ورک سٹیشن

اور تھوڑی دیر کے بعد یہ ورچوئل مشین کے ساتھ رابطہ قائم کرنے کی کوششوں کی زیادتی کے ساتھ ختم ہوا۔

یہ سب سرٹیفکیٹ کی پالیسی کے بارے میں ہے۔ ورچوئل مشین بناتے وقت، اس ڈائرکٹری میں آپ کے پاس ~.dockermachinemachinesdev ڈائرکٹری ہوگی SSH کے ذریعے منسلک ہونے کے لیے سرٹیفکیٹ فائلیں ہوں گی: id_rsa, id_rsa.pub۔ OpenSSH انہیں استعمال کرنے سے انکار کر سکتا ہے کیونکہ یہ سمجھتا ہے کہ ان کے پاس اجازت کے مسائل ہیں۔ صرف docker-machine آپ کو اس بارے میں کچھ نہیں بتائے گی، لیکن جب تک وہ بور نہ ہو جائے تب تک دوبارہ جڑ جائے گی۔

حل: جیسے ہی ایک نئی ورچوئل مشین کی تخلیق شروع ہوتی ہے، ہم ~ .dockermachinemachinesdev ڈائرکٹری پر جاتے ہیں اور مخصوص فائلوں کے حقوق کو ایک ایک کرکے تبدیل کرتے ہیں۔

فائل موجودہ صارف کی ملکیت ہونی چاہیے، صرف موجودہ صارف اور سسٹم کو مکمل رسائی حاصل ہے، باقی تمام صارفین بشمول ایڈمنسٹریٹرز گروپ اور خود ایڈمنسٹریٹرز کو حذف کر دینا چاہیے۔

Windows سے Posix فارمیٹ میں مطلق راستوں کو تبدیل کرنے اور علامتی روابط پر مشتمل حجم کو بائنڈنگ کرنے میں بھی دشواری ہو سکتی ہے۔ لیکن یہ ایک اور کہانی ہے۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں