Naloga je bila preprosta, namestiti Docker na svoj delovni prenosnik z Windows, ki je že imel pravi zverinjak. Namestil sem Docker Desktop, ustvaril kontejnerje, vse v redu, le hitro sem ugotovil, da VMWare Workstation ne more več zagnati virtualnih naprav z napako:
VMware Workstation in naprava/Credential Guard nista združljiva. VMware Workstation se lahko izvaja po onemogočanju Device/Credential Guard.
Delo je obstalo, nujno je treba popraviti.

Z metodo iskanja Googla sem ugotovil, da do te napake prihaja zaradi neskladnosti VMWare Workstation in Hyper-V na eni napravi. Problema je znana in ima uradno rešitev VMWare, kako to , s povezavo na bazo znanja Microsofta . Rešitev je v onemogočanju Defender Credential Guard (meni je pomagal odstavek 4 poglavja Onemogočanje 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: /dPo ponovnem zagonu Windows bo vprašal, ali želite res onemogočiti Defender Credential Guard. Da! Na ta način se bo VMWare Workstation vrnila v normalno delovanje, in spet bomo tam, kjer smo bili pred namestitvijo Dockerja.
Rešitev, kako spraviti Hyper-V in VMWare Workstation skupaj, še nisem našel. Upam, da se bodo v novih različicah spravili.
Druga pot
Že dolgo časa uporabljam VMWare Workstation za različne namene, poskušal sem preiti na Hyper-V in VirtualBox, ampak funkcionalnost mi ni zadostovala, tako da še vedno ostajam pri tem. Izkazalo se je, da obstaja rešitev, kako povezati VMWare, Docker in VSCode v enotno delovno okolje.
— omogoča zagon Docker Engine na virtualnem gostitelju in povezavo z njim tako na daljavo kot lokalno. In zanj je na voljo gonilnik združljivosti z VMWare Workstation,
Navodila za namestitev ne bom posebej ponavljal, le seznam sestavin:
- ( v kompletu)
- Docker Desktop
Da, Docker Desktop bo, žal, tudi potreben. Če ste ga odstranili, ga ponovno namestite, a tokrat brez označevanja potrditvenega polja za spremembe v OS, da ponovno ne pokvarite VMWare Workstation.
Takoj želim omeniti, da vse odlično deluje kot navadni uporabnik, namestitvene programe bo treba zvišati pravice, ko bo to potrebno, toda vse ukaze v ukazni vrstici in skripte izvrši trenutni uporabnik.
Na koncu z ukazom:
$ docker-machine create --driver=vmwareworkstation devIz Boot2Docker bo ustvarjena virtualka dev, znotraj katere bo Docker.
To virtualko lahko povežete v grafičnem vmesniku VMWare Workstation, tako da odprete ustrezno datoteko vmx. Vendar to ni obvezno, saj bo zdaj potrebno zagnati PowerShell skript za VSCode (iz neznanega razloga sta docker-machine in docker-machine-driver-vmwareworkstation končala prav v mapi bin):
cd ~/bin
./docker-machine env dev | Invoke-Expression
codeOdprl se bo VSCode za delo s kodo na lokalnem računalniku in Dockerjem v virtualki. Vtičnik omogoča enostavno upravljanje kontejnerjev v virtualki brez vstopa v konzolo.
Težave:
Med ustvarjanjem docker-machine se je moj postopek ustavil:
Waiting for SSH to be available... 
In po določenem času se je zaključil z napako pri poskusu povezovanja z virtualno napravo.
Vse je v politiki glede certifikatov. Ko ustvarite virtualni stroj, se vam bo pojavila mapa ~/.dockermachinemachinesdev, v kateri bodo datoteke certifikatov za povezovanje po SSH: id_rsa, id_rsa.pub. OpenSSH morda zavrne njihovo uporabo, saj menijo, da imajo težave s pravicami dostopa. Le docker-machine vam o tem ne bo povedal nič, ampak se bo preprosto ponovno povezoval, dokler ga ne prekinete.
Rešenje: Ko se začne ustvarjanje novega virtualnega stroja, vstopite v mapo ~/.dockermachinemachinesdev in spremenite pravice za navedene datoteke, eno po eno.
Lastnik datoteke mora biti trenutni uporabnik, popoln dostop pa ima le trenutni uporabnik in SYSTEM. Vse druge uporabnike, vključno s skupino skrbnikov in samimi skrbniki, je treba odstraniti.
Lahko pridejo tudi težave s pretvorbo absolutnih poti iz Windows formata v Posix in z vezanjem volumov, ki vsebujejo simbolično povezavo. Toda to je že druga zgodba.
Izvor: habr.com
