Docker at VMWare Workstation sa parehong Windows machine

Ang gawain ay simple, ilagay ang Docker sa aking gumaganang Windows laptop, na mayroon nang zoo. Nag-install ako ng Docker Desktop at gumawa ng mga lalagyan, ok ang lahat, ngunit mabilis kong natuklasan na ang VMWare Workstation ay huminto sa pagpapatakbo ng mga virtual machine nang may error:

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

Ang trabaho ay tumigil, ito ay kagyat na ayusin

Docker at VMWare Workstation sa parehong Windows machine

Sa pamamagitan ng pag-googling, nalaman na ang error na ito ay nangyayari dahil sa hindi pagkakatugma ng VMWare Workstation at Hyper-V sa parehong makina. Ang problema ay kilala at mayroong isang opisyal na solusyon sa VMWare tulad nito upang ayusin, na may link sa Microsoft Knowledge Base Pamahalaan ang Windows Defender Credential Guard. Ang solusyon ay upang huwag paganahin ang Defender Credential Guard (item 4 ng seksyong I-disable ang Windows Defender Credential Guard ay nakatulong sa akin):

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

Pagkatapos mag-restart, tatanungin ng Windows kung gusto mo talagang huwag paganahin ang Defender Credential Guard. Oo! Sa ganitong paraan, babalik sa normal na operasyon ang VMWare Workstation, at makikita natin ang ating sarili sa parehong lugar tulad ng bago mag-install ng docker.

Wala pa rin akong nahanap na solusyon kung paano i-reconcile ang Hyper-V at VMWare Workstation, sana maging magkaibigan sila sa mga bagong bersyon.

Ibang paraan

Matagal na akong gumon sa VMWare Workstation para sa iba't ibang layunin, sinubukan kong bumaba sa Hyper-V at VirtualBox, ngunit ang pag-andar ay hindi nasiyahan sa aking mga gawain, at kaya nakaupo ako hanggang ngayon. May solusyon pala kung paano makipagkaibigan sa VMWare, Docker at VSCode sa isang working environment.

makina ng pantalan - nagbibigay-daan sa iyong patakbuhin ang Docker Engine sa isang virtual na host at kumonekta dito nang malayuan at lokal. At mayroong driver ng compatibility ng VMWare Workstation para dito, link sa github

Hindi ko na muling sasabihin ang mga tagubilin sa pag-install lalo na, ang listahan lamang ng mga sangkap:

  1. Docker Toolbox (makina ng pantalan kasama)
  2. Docker Machine VMware Workstation Driver
  3. DockerDesktop

Oo, ang Docker Desktop, sa kasamaang-palad, ay kakailanganin din. Kung na-demolish mo ito, pagkatapos ay i-install ito muli, ngunit sa pagkakataong ito ay alisin ang checkbox tungkol sa paggawa ng mga pagbabago sa OS, upang hindi masira muli ang VMWare Workstation.

Nais kong tandaan kaagad na ang lahat ay gumagana nang maayos mula sa isang simpleng gumagamit, ang mga programa sa pag-install ay hihilingin para sa pagtaas ng mga karapatan kapag kailangan nila ito, ngunit ang lahat ng mga utos sa command line at mga script ay naisakatuparan mula sa kasalukuyang gumagamit.

Bilang resulta, ang koponan:

$ docker-machine create --driver=vmwareworkstation dev

mula sa Boot2Docker, isang dev virtualka ang gagawin sa loob na magiging Docker.

Maaaring i-attach ang virtual machine na ito sa VMWare Workstation GUI sa pamamagitan ng pagbubukas ng kaukulang vmx file. Ngunit ito ay hindi kinakailangan, dahil ang VSCode ay kakailanganin na ngayong magpatakbo ng isang PowerShell script (para sa ilang kadahilanan, ang aking docker-machine at docker-machine-driver-vmwareworkstation ay napunta sa bin folder):

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

Magbubukas ang VSCode upang gumana sa code sa lokal na makina at docker sa virtual machine. isaksak Docker para sa Visual Studio Code ay nagbibigay-daan sa iyong maginhawang pamahalaan ang mga lalagyan sa isang virtual machine nang hindi pumapasok sa console.

Mga kahirapan:

Sa proseso ng paglikha ng docker-machine, ang proseso ay nakabitin para sa akin:

Waiting for SSH to be available...

Docker at VMWare Workstation sa parehong Windows machine

At pagkaraan ng ilang sandali natapos ito sa labis na mga pagtatangka na magtatag ng isang koneksyon sa virtual machine.

Ito ay tungkol sa patakaran sa sertipiko. Kapag gumagawa ng virtual machine, magkakaroon ka ng ~.dockermachinemachinesdev na direktoryo sa direktoryong ito magkakaroon ng mga certificate file para sa pagkonekta sa pamamagitan ng SSH: id_rsa, id_rsa.pub. Maaaring tumanggi ang OpenSSH na gamitin ang mga ito dahil sa palagay nito ay mayroon silang mga isyu sa pahintulot. Tanging ang docker-machine lang ang hindi magsasabi sa iyo ng anuman tungkol dito, ngunit muling kumonekta hanggang sa ito ay magsawa.

solusyon: Sa sandaling magsimula ang paglikha ng isang bagong virtual machine, pumunta kami sa ~ .dockermachinemachinesdev na direktoryo at babaguhin ang mga karapatan sa tinukoy na mga file, nang paisa-isa.

Ang file ay dapat na pagmamay-ari ng kasalukuyang user, tanging ang kasalukuyang user at SYSTEM lang ang may ganap na access, lahat ng iba pang user, kasama ang grupo ng mga administrator at ang mga administrator mismo, ay dapat tanggalin.

Maaaring may mga problema din sa pag-convert ng mga absolute path mula sa Windows patungo sa Posix na format, at mga nagbubuklod na volume na naglalaman ng mga simbolikong link. Ngunit iyon ay ibang kuwento.

Pinagmulan: www.habr.com

Magdagdag ng komento