Docker en VMWare wurkstasjon op deselde Windows-masine

De taak wie ienfâldich, ynstallearje Docker op myn wurklaptop mei Windows, dy't al in bistetún hat. Ik haw Docker Desktop ynstalleare, konteners makke, alles wie ok, mar ik ûntduts gau dat VMWare Workstation stoppe mei it starten fan firtuele masines mei de flater:

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

It wurk is stilset, it moat driuwend reparearre wurde

Docker en VMWare wurkstasjon op deselde Windows-masine

Troch googling waard fûn dat dizze flater foarkomt troch de ynkompatibiliteit fan VMWare Workstation en Hyper-V op deselde masine. It probleem is bekend en d'r is in offisjele VMWare-oplossing lykas dizze te beheinen, mei in keppeling nei de Microsoft kennisbank Behear Windows Defender Credential Guard. De oplossing is om Defender Credential Guard út te skeakeljen (punt 4 fan 'e seksje Disable Windows Defender Credential Guard hat my holpen):

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

Nei't jo opnij starte, sil Windows jo freegje oft jo Defender Credential Guard moatte útskeakelje. Ja! Op dizze manier sil VMWare Workstation weromgean nei normale operaasje en sille wy op itselde plak wêze as foardat jo docker ynstallearje.

Ik haw noch gjin oplossing fûn om Hyper-V en VMWare Workstation te fermoedsoenjen, ik hoopje dat se freonen wurde yn nije ferzjes.

Op in oare manier

Ik bin heakke op VMWare Workstation foar in lange tiid foar ferskate doelen, besocht te wikseljen nei Hyper-V en VirtualBox, mar de funksjonaliteit net foldwaan myn behoeften, en ik bin noch fêst dêr oant hjoed de dei. It die bliken dat d'r in oplossing is oer hoe't jo VMWare, Docker en VSCode kinne kombinearje yn ien wurkomjouwing.

Docker Machine - kinne jo Docker Engine útfiere op in firtuele host en ferbine dermei sawol op ôfstân as lokaal. En d'r is in VMWare Workstation-kompatibiliteitsdriver foar it, ссылка op GitHub

Ik sil de ynstallaasje-ynstruksjes net spesifyk opnij fertelle, allinich de list mei yngrediïnten:

  1. Docker Toolbox (Docker Machine ynbegrepen)
  2. Docker Machine VMware Workstation Driver
  3. Docker buroblêd

Ja, Docker Desktop, spitigernôch, sil ek nedich wêze. As jo ​​​​it sloopt hawwe, ynstallearje it dan opnij, mar dizze kear ferwiderje jo it karfakje oer it meitsjen fan feroarings oan it OS, om VMWare Workstation net wer te brekken.

Ik wol direkt opmerke dat alles goed wurket fan in ienfâldige brûker, de ynstallaasjeprogramma's sille freegje om eskalaasje fan rjochten as se it nedich binne, mar alle kommando's op 'e kommandorigel en skripts wurde útfierd fan' e hjoeddeistige brûker.

As gefolch, it kommando:

$ docker-machine create --driver=vmwareworkstation dev

in dev firtuele masine sil makke wurde fan Boot2Docker, wêryn Docker ynstalleare sil.

Dizze firtuele masine kin wurde hechte oan de VMWare Workstation grafyske ynterface troch it iepenjen fan it oerienkommende vmx-bestân. Mar dit is net nedich, om't VSCode no moatte wurde lansearre troch PowerShell as skript (om ien of oare reden binne docker-masine en docker-machine-driver-vmwareworkstation yn 'e bin-map einige):

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

VSCode sil iepenje om te wurkjen mei de koade op 'e lokale masine en Docker yn' e firtuele masine. Ynstekke Docker foar Visual Studio Code lit jo konteners maklik beheare yn in firtuele masine sûnder yn 'e konsole te gean.

Swierrichheden:

Tidens it oanmeitsjen fan docker-masine befrear myn proses:

Waiting for SSH to be available...

Docker en VMWare wurkstasjon op deselde Windows-masine

En nei in skoft einige it mei mear besykjen om in ferbining te meitsjen mei de firtuele masine.

It giet allegear om sertifikaatbelied. By it meitsjen fan in firtuele masine sille jo in map ~.dockermachinemachinesdev hawwe. Yn dizze map sille d'r sertifikaatbestannen wêze foar ferbining fia SSH: id_rsa, id_rsa.pub. OpenSSH kin wegerje se te brûken, om't it tinkt dat se problemen mei tagongsrjochten hawwe. Allinich docker-masine sil jo hjir neat oer fertelle, it sil gewoan opnij ferbine oant it saai wurdt.

oplossing: Sadree't it oanmeitsjen fan in nije firtuele masine begjint, gean dan nei de ~.dockermachinemachinesdev-map en feroarje de rjochten foar de oantsjutte bestannen, ien foar ien.

De eigner fan it bestân moat de aktuele brûker wêze, allinich de aktuele brûker en SYSTEM hawwe folsleine tagong, alle oare brûkers, ynklusyf de beheardersgroep en de behearders sels, moatte wiske wurde.

D'r kinne ek problemen wêze mei it konvertearjen fan absolute paden fan Windows-formaat nei Posix, en mei binende folumes mei in symboalyske keppeling. Mar dat is in oar ferhaal.

Boarne: www.habr.com

Add a comment