Detyra ishte e thjeshtë, të vendosje Docker në laptopin tim të punës me Windows, i cili tashmë kishte një zoo. Instalova Docker Desktop, krijova kontejnerë, gjithçka ishte në rregull, por shpejt zbuluam se VMWare Workstation nuk po çante më makinat virtuale me një gabim:
VMware Workstation dhe Device/Credential Guard nuk janë të kompatibilitetshme. VMware Workstation mund të ekzekutohet pas çaktivizimit të Device/Credential Guard.
Puna u ndal, nevojitet të rregullohet urgjentisht.

Me metodĂ«n e kĂ«rkimit nĂ« Google u zbuluar se ky gabim ndodh pĂ«r shkak tĂ« moskompatibilitetit midis VMWare Workstation dhe Hyper-V nĂ« njĂ« makinĂ«. Problemi Ă«shtĂ« i njohur dhe ka njĂ« zgjidhje zyrtare nga VMWare se si ta , me lidhje nĂ« bazĂ«n e tĂ« dhĂ«nave Microsoft. . Zgjidhja pĂ«rfshin çaktivizimin e Defender Credential Guard (mĂ« ndihmoi pika 4 e seksionit Ăaktivizo Windows Defender Credential Guard):
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: /dPas rinisjes së Windows, do të pyesë nëse dëshiron vërtet të çaktivizosh Defender Credential Guard. Po! Në këtë mënyrë VMWare Workstation do të kthehet në punë të normalizuar, dhe ne do të jemi në të njëjtin vend si përpara instalimit të Docker.
Nuk gjetëm zgjidhje se si të pajtojmë Hyper-V me VMWare Workstation, shpresoj që në versionet e reja të bëhen të pajtueshmëm.
Një rrugë tjetër.
Unë tashmë kam kaluar prej një kohe të gjatë në VMWare Workstation për qëllime të ndryshme, përpiqesha të kaloj në Hyper-V dhe VirtualBox, por funksionaliteti nuk përmbushte nevojat e mia, kështu që deri më sot qëndroj. U zbulua se ka një zgjidhje se si të sjellim së bashku VMWare, Docker dhe VSCode në një mjedis pune.
â lejon tĂ« startoni Docker Engine nĂ« njĂ« host virtual dhe tĂ« lidheni me tĂ« nga distanca, si dhe lokal. Dhe pĂ«r tĂ«, ka njĂ« drejtues kompatibiliteti me VMWare Workstation,
Nuk do ta përshkruaj në detaje atë për procedurën e instalimit, vetëm listën e përbërësve:
- ( në paketë)
- Docker Desktop
Po, Docker Desktop, fatkeqësisht, gjithashtu do të jetë e nevojshme. Nëse e ke eliminuar, atëherë instaloje përsëri, por kësaj here duke hequr shenjën nga kutia për të bërë ndryshime në OS, për të mos prishur përsëri VMWare Workstation.
Dua të theksoj menjëherë se gjithçka funksionon shkëlqyeshëm nga një përdorues i zakonshëm, programet e instalimit do të kërkojnë eskalimin e të drejtave kur të jetë e nevojshme, por të gjitha komandat në komandë dhe skriptet ekzekutohen nga përdoruesi aktual.
Si rezultat, me komandën:
$ docker-machine create --driver=vmwareworkstation devNga Boot2Docker do të krijohet një makinë virtuale dev brenda së cilës do të jetë Docker.
Këtë makinë virtuale mund ta lidhnni në ndërfaqen grafike të VMWare Workstation duke hapur skedarin përkatës vmx. Por kjo nuk është e detyrueshme, pasi tani VSCode do të kërkojë të ekzekutojë skriptin PowerShell (për një arsye, docker-machine dhe docker-machine-driver-vmwareworkstation u gjetën pikërisht në dosjen bin):
cd ~/bin
./docker-machine env dev | Invoke-Expression
codeVSCode do të hapet për të punuar me kodin në makinën lokale dhe Docker në makinën virtuale. Ndihmësi lejon të menaxhoni lehtësisht kontejnerët në makinën virtuale pa hyrë në konsolë.
Vështirësi:
Gjatë procesit të krijimit të docker-machine, procesi është dërguar:
Waiting for SSH to be available... 
Dhe pas një kohe të gjatë përfundoi me tejkalimin e përpjekjeve për të krijuar lidhjen me makinën virtuale.
E gjithĂ« kjo ka tĂ« bĂ«jĂ« me politikĂ«n e certifikatave. Kur krijoni njĂ« makinĂ« virtuale, do tĂ« keni njĂ« direktorium ~/ .dockermachinemachinesdev, nĂ« kĂ«tĂ« direktorium do tĂ« jenĂ« skedarĂ«t e certifikatave pĂ«r lidhjen nĂ«pĂ«rmjet SSH: id_rsa, id_rsa.pub. OpenSSH mund tĂ« refuzojĂ« t'i pĂ«rdorĂ« ato, pasi tĂ« mendojĂ« se kanĂ« probleme me tĂ« drejtat e aksesit. Por docker-machine nuk do tâju thotĂ« asgjĂ« pĂ«r kĂ«tĂ«, thjesht do tĂ« vazhdojĂ« tĂ« ribindet derisa tĂ« mĂ«rzitet.
Zgjidhja: Sa më shpejt të fillojë krijimi i një makine virtuale të re, hyjmë në direktoriumin ~/ .dockermachinemachinesdev dhe ndryshojmë të drejtat për skedarët e përmendur, një për një.
Pronari i skedarit duhet të jetë përdoruesi aktual, me akses të plotë vetëm për përdoruesin aktual dhe SYSTEM, të gjithë përdoruesit e tjerë, përfshirë grupin e administratorëve dhe vetë administratorët duhet të hiqen.
Gjithashtu mund të ketë probleme me shndërrimin e rrugëve absolute nga formati Windows në Posix dhe me lidhjen e volumeve që përmbajnë lidhje simbolike. Por kjo është një histori tjetër.
Burimi: habr.com
