Docker in VMWare Workstation na istem računalniku Windows

Naloga je bila preprosta, namestiti Docker na moj delujoč Windows prenosnik, ki že ima živalski vrt. Namestil sem Docker Desktop in ustvaril kontejnerje, vse je v redu, vendar sem hitro ugotovil, da je VMWare Workstation prenehal izvajati virtualne stroje z napako:

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

Delo se je ustavilo, nujno je popraviti

Docker in VMWare Workstation na istem računalniku Windows

Z googlanjem je bilo ugotovljeno, da se ta napaka pojavi zaradi nezdružljivosti VMWare Workstation in Hyper-V na istem računalniku. Težava je znana in obstaja uradna rešitev VMWare, kot je ta popraviti, s povezavo do Microsoftove zbirke znanja Upravljajte Windows Defender Credential Guard. Rešitev je, da onemogočite Defender Credential Guard (pomagal mi je element 4 v razdelku Disable 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: /d

Po ponovnem zagonu vas bo Windows vprašal, ali res želite onemogočiti Defender Credential Guard. ja! Na ta način se bo VMWare Workstation vrnil v normalno delovanje, mi pa se bomo znašli na istem mestu kot pred namestitvijo dockerja.

Nisem našel rešitve, kako uskladiti Hyper-V in VMWare Workstation, upam, da se spoprijateljita v novih različicah.

Še en način

Že dolgo sem bil zasvojen z VMWare Workstation za različne namene, poskušal sem se spustiti na Hyper-V in VirtualBox, vendar funkcionalnost ni zadovoljila mojih nalog, in tako sedim še danes. Izkazalo se je, da obstaja rešitev, kako spoprijateljiti VMWare, Docker in VSCode v enem delovnem okolju.

Docker stroj - vam omogoča, da zaženete Docker Engine na virtualnem gostitelju in se z njim povežete na daljavo in lokalno. In za to obstaja gonilnik za združljivost VMWare Workstation, povezava do github

Posebej ne bom ponavljal navodil za namestitev, le seznam sestavin:

  1. Docker Toolbox (Docker stroj vključen)
  2. Gonilnik za delovno postajo Docker Machine VMware
  3. DockerDesktop

Da, na žalost bo potreben tudi Docker Desktop. Če ste ga porušili, ga znova namestite, vendar tokrat odstranite potrditveno polje o spreminjanju OS, da ne boste znova zlomili VMWare Workstation.

Takoj želim opozoriti, da od preprostega uporabnika vse deluje dobro, namestitveni programi bodo zahtevali eskalacijo pravic, ko jih bodo potrebovali, vendar se vsi ukazi v ukazni vrstici in skripti izvajajo od trenutnega uporabnika.

Kot rezultat, ekipa:

$ docker-machine create --driver=vmwareworkstation dev

iz Boot2Dockerja bo ustvarjena dev virtualka znotraj katere bo Docker.

Ta virtualni stroj je mogoče priključiti na GUI VMWare Workstation GUI tako, da odprete ustrezno datoteko vmx. Vendar to ni potrebno, ker bo moral VSCode zdaj zagnati skript PowerShell (iz neznanega razloga sta moj docker-machine in docker-machine-driver-vmwareworkstation končala v mapi bin):

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

VSCode se bo odprl za delo s kodo na lokalnem računalniku in priklopno postajo v virtualnem stroju. vključiti Docker za kodo Visual Studio vam omogoča priročno upravljanje vsebnikov v virtualnem stroju, ne da bi vstopili v konzolo.

Težave:

V procesu ustvarjanja docker-stroja se mi je postopek ustavil:

Waiting for SSH to be available...

Docker in VMWare Workstation na istem računalniku Windows

In čez nekaj časa se je končalo s presežkom poskusov vzpostavitve povezave z virtualnim strojem.

Vse je v politiki potrdil. Ko ustvarjate navidezni stroj, boste imeli imenik ~.dockermachinemachinesdev, v tem imeniku bodo datoteke potrdil za povezovanje prek SSH: id_rsa, id_rsa.pub. OpenSSH jih lahko zavrne, ker misli, da imajo težave z dovoljenji. Samo docker-machine vam o tem ne bo povedal ničesar, ampak se bo preprosto znova povezal, dokler mu ne bo dolgčas.

raztopina: Takoj, ko se začne ustvarjanje novega virtualnega stroja, gremo v imenik ~ .dockermachinemachinesdev in spremenimo pravice do navedenih datotek, eno za drugo.

Datoteka mora biti v lasti trenutnega uporabnika, samo trenutni uporabnik in SISTEM imata popoln dostop, vsi ostali uporabniki, vključno s skupino skrbnikov in skrbniki sami, morajo biti izbrisani.

Prav tako lahko pride do težav pri pretvorbi absolutnih poti iz formata Windows v format Posix in povezovanju nosilcev, ki vsebujejo simbolne povezave. Ampak to je druga zgodba.

Vir: www.habr.com

Dodaj komentar