Docker ืื•ืŸ VMWare Workstation ืื•ื™ืฃ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ Windows ืžืึทืฉื™ืŸ

ื“ื™ ืึทืจื‘ืขื˜ ืื™ื– ื’ืขื•ื•ืขืŸ ืคึผืฉื•ื˜, ืฉื˜ืขืœืŸ ื“ืึธืงืงืขืจ ืื•ื™ืฃ ืžื™ื™ืŸ ืืจื‘ืขื˜ืŸ Windows ืœืึทืคึผื˜ืึทืคึผ, ื•ื•ืึธืก ื”ืื˜ ืฉื•ื™ืŸ ืึท ื–ืึธืึธืœืึธื’ื™ืฉืขืจ ื’ืึธืจื˜ืŸ. ืื™ืš ืื™ื ืกื˜ืึทืœื™ืจืŸ ื“ืึธืงืงืขืจ ื“ืขืกืงื˜ืึธืคึผ ืื•ืŸ ื‘ืืฉืืคืŸ ืงืึทื ื˜ื™ื™ื ืขืจื–, ืึทืœืฅ ืื™ื– ื’ื•ื˜, ืึธื‘ืขืจ ืื™ืš ื’ืขืฉื•ื•ื™ื ื“ ื“ื™ืกืงืึทื•ื•ืขืจื“ ืึทื– VMWare ื•ื•ืขืจืงืกื˜ื™ื™ืฉืึทืŸ ืคืืจืฉื˜ืืคื˜ ืคืœื™ืกื ื“ื™ืง ื•ื•ื™ืจื˜ื•ืึทืœ ืžืืฉื™ื ืขืŸ ืžื™ื˜ ืึท ื˜ืขื•ืช:

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

ื“ื™ ืึทืจื‘ืขื˜ ื”ืื˜ ืคืืจืฉื˜ืืคื˜, ืขืก ืื™ื– ื“ืจื™ื ื’ืœืขืš ืฆื• ืคืึทืจืจื™ื›ื˜ืŸ

Docker ืื•ืŸ VMWare Workstation ืื•ื™ืฃ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ Windows ืžืึทืฉื™ืŸ

ื“ื•ืจืš ื’ืึธื’ืœื™ื ื’, ืขืก ืื™ื– ื’ืขืคึฟื•ื ืขืŸ ื’ืขื•ื•ืึธืจืŸ ืึทื– ื“ืขืจ ื˜ืขื•ืช ืึทืงืขืจื– ืจืขื›ื˜ ืฆื• ื“ืขืจ ื™ื ืงืึทืžืคึผืึทื˜ืึทื‘ื™ืœืึทื˜ื™ ืคื•ืŸ VMWare Workstation ืื•ืŸ Hyper-V ืื•ื™ืฃ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืžืึทืฉื™ืŸ. ื“ืขืจ ืคึผืจืึธื‘ืœืขื ืื™ื– ื‘ืึทื•ื•ื•ืกื˜ ืื•ืŸ ืขืก ืื™ื– ืึทืŸ ื‘ืึทืึทืžื˜ืขืจ VMWare ืœื™ื™ื–ื•ื ื’ ื•ื•ื™ ื“ืึธืก ืคืึทืจืจื™ื›ื˜ืŸืžื™ื˜ ืึท ืœื™ื ืง ืฆื• ื“ื™ Microsoft Knowledge Base ืคื™ืจืŸ Windows Defender Credential Guard. ื“ื™ ืœื™ื™ื–ื•ื ื’ ืื™ื– ืฆื• ื“ื™ืกื™ื™ื‘ืึทืœ Defender Credential Guard (ื ื•ืฅ 4 ืคื•ืŸ ื“ื™ 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

ื ืึธืš ืจื™ืกื˜ืึทืจื˜ื™ื ื’, Windows ื•ื•ืขื˜ ืคืจืขื’ืŸ ืื•ื™ื‘ ืื™ืจ ื˜ืึทืงืข ื•ื•ื™ืœืŸ ืฆื• ื“ื™ืกื™ื™ื‘ืึทืœ Defender Credential Guard. ื™ืึธ! ืื™ืŸ ื“ืขื ื•ื•ืขื’, VMWare Workstation ื•ื•ืขื˜ ืฆื•ืจื™ืงืงื•ืžืขืŸ ืฆื• ื ืึธืจืžืึทืœ ืึธืคึผืขืจืึทืฆื™ืข, ืื•ืŸ ืžื™ืจ ื•ื•ืขืœืŸ ื’ืขืคึฟื™ื ืขืŸ ื–ื™ืš ืื™ืŸ ื“ื™ ื–ืขืœื‘ืข ืคึผืœืึทืฅ ื•ื•ื™ ืื™ื™ื“ืขืจ ื™ื ืกื˜ืึธืœื™ื ื’ ื“ืึธืงืงืขืจ.

ืื™ืš ื”ืื‘ ื ื™ืฉื˜ ื’ืขืคึฟื•ื ืขืŸ ืึท ืœื™ื™ื–ื•ื ื’ ื•ื•ื™ ืฆื• ืฉืึธืœืขืž ืžืึทื›ืŸ Hyper-V ืื•ืŸ VMWare Workstation, ืื™ืš ื”ืึธืคึฟืŸ ื–ื™ื™ ื•ื•ืขืœืŸ ื•ื•ืขืจืŸ ืคืจืขื ื“ื– ืื™ืŸ ื ื™ื™ึทืข ื•ื•ืขืจืกื™ืขืก.

ืืŸ ืื ื“ืขืจ ื•ื•ืขื’

ืื™ืš ื‘ื™ืŸ ืœืึทื ื’ ืึทื“ื™ืงื˜ื™ื“ ืฆื• VMWare ื•ื•ืึธืจืงืกื˜ื™ื™ืฉืึทืŸ ืคึฟืึทืจ ืคืึทืจืฉื™ื“ืŸ ืฆื•ื•ืขืงืŸ, ืื™ืš ื’ืขืคืจื•ื•ื•ื˜ ืฆื• ื‘ืึทืงื•ืžืขืŸ ืึทื•ื•ืขืง ืื•ื™ืฃ Hyper-V ืื•ืŸ VirtualBox, ืึธื‘ืขืจ ื“ื™ ืคืึทื ื’ืงืฉืึทื ืึทืœื™ื˜ื™ ื”ืื˜ ื ื™ืฉื˜ ื‘ืึทืคืจื™ื“ื™ืงืŸ ืžื™ื™ืŸ ื˜ืึทืกืงืก, ืื•ืŸ ืึทื–ื•ื™ ืื™ืš ื–ื™ืฆืŸ ื‘ื™ื– ื“ืขื ื˜ืึธื’. ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ืึท ืœื™ื™ื–ื•ื ื’ ื•ื•ื™ ืฆื• ืžืึทื›ืŸ ืคืจืขื ื“ื– VMWare, Docker ืื•ืŸ VSCode ืื™ืŸ ืื™ื™ืŸ ืึทืจื‘ืขื˜ ืกื•ื•ื™ื•ื•ืข.

ื“ืึธืงืขืจ ืžืึทืฉื™ืŸ - ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืœื•ื™ืคืŸ Docker Engine ืื•ื™ืฃ ืึท ื•ื•ื™ืจื˜ื•ืึทืœ ื‘ืึทืœืขื‘ืึธืก ืื•ืŸ ืคืึทืจื‘ื™ื ื“ืŸ ืฆื• ืื™ื ืจื™ืžืึธื•ื˜ืœื™ ืื•ืŸ ืœืึธื•ืงืึทืœื™. ืื•ืŸ ืขืก ืื™ื– ืึท VMWare ื•ื•ืขืจืงืกื˜ื™ื™ืฉืึทืŸ ืงืึทืžืคึผืึทื˜ืึทื‘ื™ืœืึทื˜ื™ ืฉืึธืคืขืจ ืคึฟืึทืจ ืขืก, ืœื™ื ืง ืฆื• ื’ื™ื˜ื”ื•ื‘

ืื™ืš ื•ื•ืขืœ ื ื™ืฉื˜ ื“ืขืจืฆื™ื™ืœืŸ ื“ื™ ื™ื™ึทื ืžืึธื ื˜ื™ืจื•ื ื’ ื™ื ืกื˜ืจืึทืงืฉืึทื ื– ืกืคึผืขืฆื™ืขืœ, ื ืึธืจ ื“ื™ ืจืฉื™ืžื” ืคื•ืŸ ื™ื ื’ืจื™ื“ื™ืึทื ืฅ:

  1. ื“ืึธืงืงืขืจ ืžื›ืฉื™ืจื™ื (ื“ืึธืงืขืจ ืžืึทืฉื™ืŸ ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜)
  2. Docker Machine VMware Workstation Driver
  3. ื“ืึธืงืงืขืจ ื“ืขืกืงื˜ืึธืคึผ

ื™ืึธ, Docker Desktop, ืœื™ื™ื“ืขืจ, ื•ื•ืขื˜ ืื•ื™ืš ื–ื™ื™ืŸ ื“ืืจืฃ. ืื•ื™ื‘ ืื™ืจ ื“ื™ืžืึทืœื™ืฉื˜ ืขืก, ื“ืขืžืึธืœื˜ ื™ื ืกื˜ืึทืœื™ืจืŸ ืขืก ื•ื•ื™ื“ืขืจ, ืึธื‘ืขืจ ื“ืึธืก ืžืึธืœ ืจื™ืžื•ื•ื•ื™ื ื’ ื“ื™ ื˜ืฉืขืงืงื‘ืึธืงืก ืฆื• ืžืึทื›ืŸ ืขื ื“ืขืจื•ื ื’ืขืŸ ืฆื• ื“ื™ ืึทืก, ืึทื–ื•ื™ ื ื™ืฉื˜ ืฆื• ื‘ืจืขื›ืŸ VMWare ื•ื•ืขืจืงืกื˜ื™ื™ืฉืึทืŸ ื•ื•ื™ื“ืขืจ.

ืื™ืš ื•ื•ื™ืœืŸ ืฆื• ื˜ืึธืŸ ื’ืœื™ื™ืš ืึทื– ืึทืœืฅ ืึทืจื‘ืขื˜ ืคื™ื™ึทืŸ ืคื•ืŸ ืึท ืคึผืฉื•ื˜ ื‘ืึทื ื™ืฆืขืจ, ื“ื™ ื™ื™ึทื ืžืึธื ื˜ื™ืจื•ื ื’ ืžื’ื™ืœื” ื•ื•ืขืœืŸ ืคืจืขื’ืŸ ืคึฟืึทืจ ืขืกืงืึทืœื™ืจื•ื ื’ ืคื•ืŸ ืจืขื›ื˜ ื•ื•ืขืŸ ื–ื™ื™ ื“ืึทืจืคึฟืŸ ืขืก, ืึธื‘ืขืจ ืึทืœืข ืงืึทืžืึทื ื“ื– ืื•ื™ืฃ ื“ื™ ื‘ืึทืคึฟืขืœืŸ ืฉื•ืจื” ืื•ืŸ ืกืงืจื™ืคึผืก ื–ืขื ืขืŸ ืขืงืกืึทืงื™ื•ื˜ืึทื“ ืคื•ืŸ ื“ืขื ืงืจืึทื ื˜ ื‘ืึทื ื™ืฆืขืจ.

ื•ื•ื™ ืึท ืจืขื–ื•ืœื˜ืึทื˜, ื“ื™ ืžืึทื ืฉืึทืคึฟื˜:

$ docker-machine create --driver=vmwareworkstation dev

ืคึฟื•ืŸ Boot2Docker, ืึท ื“ืขื•ื• ื•ื•ื™ืจื˜ื•ืึทืœืงืึท ื•ื•ืขื˜ ื–ื™ื™ืŸ ื‘ืืฉืืคืŸ ื™ืŸ ื•ื•ืึธืก ื•ื•ืขื˜ ื–ื™ื™ืŸ Docker.

ื“ื™ ื•ื•ื™ืจื˜ื•ืึทืœ ืžืึทืฉื™ืŸ ืงืขื ืขืŸ ื–ื™ื™ืŸ ืึทื˜ืึทื˜ืฉื˜ ืฆื• ื“ื™ VMWare Workstation GUI ื“ื•ืจืš ืขืคืŸ ื“ื™ ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ ื•ื•ืžืงืก ื˜ืขืงืข. ืึธื‘ืขืจ ื“ืึธืก ืื™ื– ื ื™ื˜ ื ื™ื™ื˜ื™ืง, ื•ื•ื™ื™ึทืœ VSCode ื•ื•ืขื˜ ืื™ืฆื˜ ื“ืึทืจืคึฟืŸ ืฆื• ืœื•ื™ืคืŸ ืึท PowerShell ืฉืจื™ืคื˜ (ืคึฟืึทืจ ืขื˜ืœืขื›ืข ืกื™ื‘ื”, ืžื™ื™ืŸ ื“ืึธืงืงืขืจ-ืžืึทืฉื™ืŸ ืื•ืŸ ื“ืึธืงืงืขืจ-ืžืึทืฉื™ืŸ-ื“ืจื™ื™ื•ื•ืขืจ-ื•ื•ืžื•ื•ืึทืจืขื•ื•ืึธืจืงืกื˜ื™ื™ืฉืึทืŸ ืขื ื“ื™ืงื˜ ื–ื™ืš ืื™ืŸ ื“ื™ ื‘ื™ืŸ ื˜ืขืงืข):

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

VSCode ื•ื•ืขื˜ ืขืคืขื ืขืŸ ืฆื• ืึทืจื‘ืขื˜ืŸ ืžื™ื˜ ืงืึธื“ ืื•ื™ืฃ ื“ื™ ื”ื™ื’ืข ืžืึทืฉื™ืŸ ืื•ืŸ ื“ืึธืงืงืขืจ ืื™ืŸ ื“ื™ ื•ื•ื™ืจื˜ื•ืึทืœ ืžืึทืฉื™ืŸ. ืฉื˜ืขืง ืืจื™ื™ืŸ ื“ืึธืงืงืขืจ ืคึฟืึทืจ ื•ื•ื™ืกื•ืึทืœ ืกื˜ื•ื“ื™ืึธ ืงืึธื“ ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืงืึทื ื•ื•ื™ื ื™ืึทื ื˜ืœื™ ืคื™ืจืŸ ืงืึทื ื˜ื™ื™ื ืขืจื– ืื™ืŸ ืึท ื•ื•ื™ืจื˜ื•ืึทืœ ืžืึทืฉื™ืŸ ืึธืŸ ื‘ืึทืงื•ืžืขืŸ ืื™ืŸ ื“ื™ ืงืึทื ืกืึธื•ืœ.

ืฉื•ื•ืขืจื™ืงื™ื™ื˜ืŸ:

ืื™ืŸ ื“ืขื ืคึผืจืึธืฆืขืก ืคื•ืŸ ืงืจื™ื™ื™ื˜ื™ื ื’ ื“ืึธืงืงืขืจ-ืžืึทืฉื™ืŸ, ื“ืขืจ ืคึผืจืึธืฆืขืก ื’ืขื”ืื ื’ืขืŸ ืคึฟืึทืจ ืžื™ืจ:

Waiting for SSH to be available...

Docker ืื•ืŸ VMWare Workstation ืื•ื™ืฃ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ Windows ืžืึทืฉื™ืŸ

ืื•ืŸ ื ืึธืš ืึท ื‘ืฉืขืช ืขืก ื’ืขืขื ื“ื™ืงื˜ ืžื™ื˜ ืึท ื•ื™ื“ืขืคื“ื™ืง ืคื•ืŸ ืคืจื•ื•ื•ืŸ ืฆื• ืคืึทืจืœื™ื™ื’ืŸ ืึท ืงืฉืจ ืžื™ื˜ ื“ื™ ื•ื•ื™ืจื˜ื•ืึทืœ ืžืึทืฉื™ืŸ.

ืขืก ืก ืึทืœืข ื•ื•ืขื’ืŸ ื‘ืึทื•ื•ื™ื™ึทื–ืŸ ืคึผืึธืœื™ื˜ื™ืง. ื•ื•ืขืŸ ืื™ืจ ืฉืึทืคึฟืŸ ืึท ื•ื•ื™ืจื˜ื•ืึทืœ ืžืึทืฉื™ืŸ, ืื™ืจ ื•ื•ืขื˜ ื”ืึธื‘ืŸ ืึท ~.dockermachinemachinesdev ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ ืื™ืŸ ื“ืขื ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ, ืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ื‘ืึทื•ื•ื™ื™ึทื–ืŸ ื˜ืขืงืขืก ืคึฟืึทืจ ืงืึทื ืขืงื˜ื™ื ื’ ื“ื•ืจืš SSH: id_rsa, id_rsa.pub. OpenSSH ืงืขืŸ ืึธืคึผื–ืึธื’ืŸ ืฆื• ื ื•ืฆืŸ ื–ื™ื™ ื•ื•ื™ื™ึทืœ ืขืก ืžื™ื™ื ื˜ ืึทื– ื–ื™ื™ ื”ืึธื‘ืŸ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ื™ืฉื•ื–. ื‘ืœื•ื™ื– ื“ืึธืงืขืจ-ืžืึทืฉื™ืŸ ื•ื•ืขื˜ ื ื™ืฉื˜ ื–ืึธื’ืŸ ืื™ืจ ืขืคึผืขืก ื•ื•ืขื’ืŸ ื“ืขื, ืึธื‘ืขืจ ื•ื•ืขื˜ ืคืฉื•ื˜ ืจื™ืงืึทื ืขืงื˜ ื‘ื™ื– ืขืก ื•ื•ืขืจื˜ ื‘ืึธืจื“.

ืœื™ื™ื–ื•ื ื’: ื•ื•ื™ ื‘ืึทืœื“ ื•ื•ื™ ื“ื™ ืฉืึทืคื•ื ื’ ืคื•ืŸ ืึท ื ื™ื™ึท ื•ื•ื™ืจื˜ื•ืึทืœ ืžืึทืฉื™ืŸ ื”ื™ื™ื‘ื˜, ืžื™ืจ ื’ื™ื™ืŸ ืฆื• ื“ื™ ~ .dockermachinemachinesdev ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ ืื•ืŸ ื˜ื•ื™ืฉืŸ ื“ื™ ืจืขื›ื˜ ืฆื• ื“ื™ ืกืคึผืขืกืึทืคื™ื™ื“ ื˜ืขืงืขืก, ืื™ื™ื ืขืจ ืื™ืŸ ืึท ืฆื™ื™ึทื˜.

ื“ื™ ื˜ืขืงืข ืžื•ื–ืŸ ื–ื™ื™ืŸ ืึธื•ื ื“ ื“ื•ืจืš ื“ื™ ืงืจืึทื ื˜ ื‘ืึทื ื™ืฆืขืจ, ื‘ืœื•ื™ื– ื“ืขืจ ืื™ืฆื˜ื™ืงืขืจ ื‘ืึทื ื™ืฆืขืจ ืื•ืŸ SYSTEM ื”ืึธื‘ืŸ ืคื•ืœ ืึทืงืกืขืก, ืึทืœืข ืื ื“ืขืจืข ื ื™ืฆืขืจืก, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ื“ื™ ืึทื“ืžื™ื ื™ืกื˜ืจืึทื˜ืึธืจืก ื’ืจื•ืคึผืข ืื•ืŸ ื“ื™ ืึทื“ืžื™ื ื™ืกื˜ืจืึทื˜ืึธืจืก ื–ื™ืš, ืžื•ื–ืŸ ื•ื•ืขืจืŸ ืื•ื™ืกื’ืขืžืขืงื˜.

ืขืก ืงืขืŸ ืื•ื™ืš ื–ื™ื™ืŸ ืคึผืจืึธื‘ืœืขืžืก ืžื™ื˜ ืงืึทื ื•ื•ืขืจื˜ื™ื ื’ ืึทื‘ืกืึธืœื•ื˜ ืคึผืึทื˜ืก ืคึฟื•ืŸ Windows ืฆื• Posix ืคึฟืึธืจืžืึทื˜, ืื•ืŸ ืžื™ื˜ ื‘ื™ื™ื ื“ื™ื ื’ ื•ื•ืึทืœื™ื•ืžื– ืžื™ื˜ ืึท ืกื™ืžื‘ืึธืœื™ืฉ ืœื™ื ืง. ืื‘ืขืจ ื“ืึธืก ืื™ื– ืืŸ ืื ื“ืขืจ ื’ืขืฉื™ื›ื˜ืข.

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’