Docker-ը և VMWare Workstation-ը նույն Windows մեքենայի վրա

Առաջադրանքը պարզ էր, Docker-ը դրեք իմ աշխատող Windows նոութբուքի վրա, որն արդեն կենդանաբանական այգի ունի։ Ես տեղադրեցի Docker Desktop-ը և ստեղծեցի կոնտեյներներ, ամեն ինչ կարգին է, բայց ես արագ հայտնաբերեցի, որ VMWare Workstation-ը դադարեցրել է վիրտուալ մեքենաների աշխատանքը սխալմամբ.

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

Աշխատանքները դադարեցվել են, շտապ վերանորոգվում է

Docker-ը և VMWare Workstation-ը նույն Windows մեքենայի վրա

Գուգլի միջոցով պարզվեց, որ այս սխալը տեղի է ունենում նույն մեքենայի վրա VMWare Workstation-ի և Hyper-V-ի անհամատեղելիության պատճառով։ Խնդիրը հայտնի է, և կա այսպիսի պաշտոնական VMWare լուծում ուղղել, Microsoft-ի գիտելիքի բազայի հղումով Կառավարեք Windows Defender Credential Guard-ը. Լուծումը 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

Վերագործարկվելուց հետո Windows-ը կհարցնի, արդյոք իսկապես ցանկանում եք անջատել Defender Credential Guard-ը: Այո՛ Այս կերպ VMWare Workstation-ը կվերադառնա նորմալ աշխատանքի, և մենք կհայտնվենք նույն տեղում, ինչ մինչև docker-ը տեղադրելը:

Ես լուծում չեմ գտել, թե ինչպես հաշտեցնել Hyper-V-ը և VMWare Workstation-ը, հուսով եմ, որ նրանք ընկերներ կդառնան նոր տարբերակներում:

Մեկ այլ ճանապարհ

Ես վաղուց կախված էի VMWare Workstation-ից տարբեր նպատակներով, ես փորձեցի իջնել Hyper-V-ի և VirtualBox-ի վրա, բայց ֆունկցիոնալությունը չբավարարեց իմ առաջադրանքները, և այնպես որ ես նստում եմ մինչ օրս: Պարզվեց, որ կա լուծում, թե ինչպես ընկերներ ձեռք բերել VMWare, Docker և VSCode մեկ աշխատանքային միջավայրում։

Docker մեքենա - թույլ է տալիս գործարկել Docker Engine-ը վիրտուալ հոսթի վրա և միանալ դրան ինչպես հեռակա, այնպես էլ տեղական: Եվ դրա համար կա VMWare Workstation-ի համատեղելիության դրայվեր, հղում github-ին

Հատկապես չեմ պատմի տեղադրման հրահանգները, միայն բաղադրիչների ցանկը.

  1. Docker Toolbox (Docker մեքենա ներառված)
  2. Docker Machine VMware Workstation Driver
  3. Docker աշխատասեղան

Այո, Docker Desktop-ը, ցավոք, նույնպես անհրաժեշտ կլինի: Եթե ​​քանդել եք, ապա նորից տեղադրեք, բայց այս անգամ հեռացնելով ՕՀ-ում փոփոխություններ կատարելու մասին վանդակը, որպեսզի նորից չխախտեք VMWare Workstation-ը։

Անմիջապես ուզում եմ նշել, որ ամեն ինչ լավ է աշխատում պարզ օգտագործողի կողմից, տեղադրման ծրագրերը կպահանջեն իրավունքների ընդլայնում, երբ դրա կարիքը ունենան, բայց հրամանի տողում և սցենարների բոլոր հրամանները կատարվում են ընթացիկ օգտվողից:

Արդյունքում թիմը.

$ docker-machine create --driver=vmwareworkstation dev

Boot2Docker-ից կստեղծվի dev virtualka, որի ներսում կլինի Docker-ը:

Այս վիրտուալ մեքենան կարող է կցվել VMWare Workstation GUI-ին՝ բացելով համապատասխան vmx ֆայլը: Բայց դա անհրաժեշտ չէ, քանի որ VSCode-ն այժմ պետք է գործարկի PowerShell սկրիպտը (ինչ-ինչ պատճառներով իմ docker-machine-ը և docker-machine-driver-vmwareworkstation-ը հայտնվեցին աղբարկղում).

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

VSCode-ը կբացվի տեղական մեքենայի վրա կոդի հետ աշխատելու համար, իսկ վիրտուալ մեքենայի դոկերը: միացնել Docker Visual Studio Code-ի համար թույլ է տալիս հեշտությամբ կառավարել կոնտեյներները վիրտուալ մեքենայի մեջ՝ առանց կոնսոլ մտնելու:

Դժվարություններ:

Docker-machine-ի ստեղծման գործընթացում ինձ համար գործընթացը կախված էր.

Waiting for SSH to be available...

Docker-ը և VMWare Workstation-ը նույն Windows մեքենայի վրա

Եվ որոշ ժամանակ անց այն ավարտվեց վիրտուալ մեքենայի հետ կապ հաստատելու փորձերի ավելցուկով։

Ամեն ինչ վկայագրի քաղաքականության մասին է: Վիրտուալ մեքենա ստեղծելիս դուք կունենաք ~.dockermachinemachinesdev գրացուցակ այս գրացուցակում, որտեղ կլինեն SSH-ի միջոցով միանալու վկայագրի ֆայլեր՝ id_rsa, id_rsa.pub: OpenSSH-ը կարող է հրաժարվել դրանք օգտագործելուց, քանի որ կարծում է, որ թույլտվության հետ կապված խնդիրներ ունեն: Միայն docker-machine-ը ձեզ ոչինչ չի ասի այս մասին, այլ պարզապես կվերամիացվի այնքան ժամանակ, քանի դեռ չի ձանձրանում:

լուծում: Հենց սկսվում է նոր վիրտուալ մեքենայի ստեղծումը, մենք գնում ենք ~ .dockermachinemachinesdev գրացուցակ և հերթով փոխում ենք նշված ֆայլերի իրավունքները:

Ֆայլը պետք է պատկանի ընթացիկ օգտատիրոջը, միայն ընթացիկ օգտատերը և SYSTEM-ը պետք է լիարժեք մուտք ունենան, մնացած բոլոր օգտվողները, ներառյալ ադմինիստրատորների խումբը և իրենք՝ ադմինիստրատորները, պետք է ջնջվեն:

Հնարավոր է նաև խնդիրներ լինեն բացարձակ ուղիները Windows-ից Posix ձևաչափի փոխարկելու և սիմվոլիկ հղումներ պարունակող հատորների կապակցման հետ կապված: Բայց դա այլ պատմություն է։

Source: www.habr.com

Добавить комментарий