Docker ื•-VMWare Workstation ื‘ืื•ืชื• ืžื—ืฉื‘ Windows

ื”ืžืฉื™ืžื” ื”ื™ื™ืชื” ืคืฉื•ื˜ื”, ื”ื›ื ืก ืืช Docker ืœืžื—ืฉื‘ ื”ื ื™ื™ื“ ืฉืœ Windows ื”ืขื•ื‘ื“ ืฉืœื™, ืฉื›ื‘ืจ ื™ืฉ ืœื• ื’ืŸ ื—ื™ื•ืช. ื”ืชืงื ืชื™ ืืช Docker Desktop ื•ื™ืฆืจืชื™ ืงื•ื ื˜ื™ื™ื ืจื™ื, ื”ื›ืœ ื‘ืกื“ืจ, ืื‘ืœ ืžื”ืจ ืžืื•ื“ ื’ื™ืœื™ืชื™ ืฉ-VMWare Workstation ื”ืคืกื™ืงื” ืœื”ืจื™ืฅ ืžื›ื•ื ื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช ืขื ืฉื’ื™ืื”:

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 ื‘ืกืขื™ืฃ ื”ืฉื‘ืช ืืช 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 ืชื—ื–ื•ืจ ืœืคืขื•ืœื” ืจื’ื™ืœื”, ื•ืื ื• ื ืžืฆื ืืช ืขืฆืžื ื• ื‘ืื•ืชื• ืžืงื•ื ื›ืžื• ืœืคื ื™ ื”ืชืงื ืช docker.

ืœื ืžืฆืืชื™ ืคืชืจื•ืŸ ื›ื™ืฆื“ ืœื™ื™ืฉื‘ ืืช Hyper-V ื•-VMWare Workstation, ืื ื™ ืžืงื•ื•ื” ืฉื”ื ื™ื”ืคื›ื• ืœื—ื‘ืจื™ื ื‘ื’ืจืกืื•ืช ื—ื“ืฉื•ืช.

ื“ืจืš ื ื•ืกืคืช

ืžื–ืžืŸ ื”ืชืžื›ืจืชื™ ืœ-VMWare Workstation ืœืžื˜ืจื•ืช ืฉื•ื ื•ืช, ื ื™ืกื™ืชื™ ืœืจื“ืช ืขืœ Hyper-V ื•-VirtualBox, ืื‘ืœ ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืœื ืกื™ืคืงื” ืืช ื”ืžืฉื™ืžื•ืช ืฉืœื™, ื•ื›ืš ืื ื™ ื™ื•ืฉื‘ ืขื“ ื”ื™ื•ื. ื”ืชื‘ืจืจ ืฉื™ืฉ ืคืชืจื•ืŸ ืื™ืš ืœื™ืฆื•ืจ ื—ื‘ืจื™ื VMWare, Docker ื•- VSCode ื‘ืกื‘ื™ื‘ืช ืขื‘ื•ื“ื” ืื—ืช.

ืžื›ื•ื ืช ื“ื•ืงืจ - ืžืืคืฉืจ ืœืš ืœื”ืคืขื™ืœ ืืช Docker Engine ืขืœ ืžืืจื— ื•ื™ืจื˜ื•ืืœื™ ื•ืœื”ืชื—ื‘ืจ ืืœื™ื• ืžืจื—ื•ืง ื•ืžืงื•ืžื™. ื•ื™ืฉ ืขื‘ื•ืจื• ืžื ื”ืœ ื”ืชืงืŸ ืชืื™ืžื•ืช ืœ-VMWare Workstation, ืงื™ืฉื•ืจ ืœ-github

ืื ื™ ืœื ืืกืคืจ ืืช ื”ื•ืจืื•ืช ื”ื”ืชืงื ื” ื‘ืžื™ื•ื—ื“, ืจืง ืืช ืจืฉื™ืžืช ื”ืžืจื›ื™ื‘ื™ื:

  1. ืืจื’ื– ื”ื›ืœื™ื ืฉืœ Docker (ืžื›ื•ื ืช ื“ื•ืงืจ ื›ืœื•ืœ)
  2. ืžื ื”ืœ ื”ืชืงืŸ Docker Machine VMware Workstation
  3. ืฉื•ืœื—ื ื™ Docker

ื›ืŸ, ื™ื”ื™ื” ืฆื•ืจืš ื’ื ื‘- Docker Desktop, ืœืžืจื‘ื” ื”ืฆืขืจ. ืื ื”ืจืกืช ืื•ืชื•, ืื– ื”ืชืงืŸ ืื•ืชื• ืฉื•ื‘, ืืš ื”ืคืขื ื”ืกืจ ืืช ืชื™ื‘ืช ื”ืกื™ืžื•ืŸ ืœื’ื‘ื™ ื‘ื™ืฆื•ืข ืฉื™ื ื•ื™ื™ื ื‘ืžืขืจื›ืช ื”ื”ืคืขืœื”, ื›ื“ื™ ืœื ืœืฉื‘ื•ืจ ืืช VMWare Workstation ืฉื•ื‘.

ืื ื™ ืจื•ืฆื” ืœืฆื™ื™ืŸ ืžื™ื“ ืฉื”ื›ืœ ืขื•ื‘ื“ ื‘ืกื“ืจ ืžืžืฉืชืžืฉ ืคืฉื•ื˜, ืชื•ื›ื ื™ื•ืช ื”ื”ืชืงื ื” ื™ื‘ืงืฉื• ื”ืกืœืžื” ืฉืœ ื–ื›ื•ื™ื•ืช ื›ืฉื”ืŸ ืฆืจื™ื›ื•ืช ืืช ื–ื”, ืื‘ืœ ื›ืœ ื”ืคืงื•ื“ื•ืช ื‘ืฉื•ืจืช ื”ืคืงื•ื“ื” ื•ื”ืกืงืจื™ืคื˜ื™ื ืžื‘ื•ืฆืขื•ืช ืžื”ืžืฉืชืžืฉ ื”ื ื•ื›ื—ื™.

ื›ืชื•ืฆืื” ืžื›ืš, ื”ืฆื•ื•ืช:

$ docker-machine create --driver=vmwareworkstation dev

ืž-Boot2Docker, ืชื™ื•ื•ืฆืจ ื•ื™ืจื˜ื•ืืœื™ืช ืžืคืชื—ืช ืฉื‘ืชื•ื›ื” ืชื”ื™ื” Docker.

ืžื›ื•ื ื” ื•ื™ืจื˜ื•ืืœื™ืช ื–ื• ื™ื›ื•ืœื” ืœื”ื™ื•ืช ืžื—ื•ื‘ืจืช ืœ-VMWare Workstation GUI ืขืœ ื™ื“ื™ ืคืชื™ื—ืช ืงื•ื‘ืฅ ื”-vmx ื”ืžืชืื™ื. ืื‘ืœ ื–ื” ืœื ื”ื›ืจื—ื™, ื›ื™ VSCode ื™ืฆื˜ืจืš ื›ืขืช ืœื”ืจื™ืฅ ืกืงืจื™ืคื˜ PowerShell (ืžืกื™ื‘ื” ื›ืœืฉื”ื™, ื”-docker-machine ื•-docker-machine-driver-vmwareworkstation ืฉืœื™ ื”ื’ื™ืขื• ืœืชื™ืงื™ื™ืช bin):

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

VSCode ื™ื™ืคืชื— ืœืขื‘ื•ื“ื” ืขื ืงื•ื“ ื‘ืžื—ืฉื‘ ื”ืžืงื•ืžื™ ื•ื‘-docker ื‘ืžื›ื•ื ื” ื”ื•ื™ืจื˜ื•ืืœื™ืช. ื—ื™ื‘ื•ืจ Docker ืขื‘ื•ืจ Visual Studio Code ืžืืคืฉืจ ืœืš ืœื ื”ืœ ื‘ื ื•ื—ื•ืช ืงื•ื ื˜ื™ื™ื ืจื™ื ื‘ืžื›ื•ื ื” ื•ื™ืจื˜ื•ืืœื™ืช ืžื‘ืœื™ ืœื”ื™ื›ื ืก ืœืงื•ื ืกื•ืœื”.

ืงืฉื™ื™ื:

ื‘ืชื”ืœื™ืš ื™ืฆื™ืจืช docker-machine, ื”ืชื”ืœื™ืš ื”ื™ื” ืชืœื•ื™ ืœื™:

Waiting for SSH to be available...

Docker ื•-VMWare Workstation ื‘ืื•ืชื• ืžื—ืฉื‘ Windows

ื•ืื—ืจื™ ื–ืžืŸ ืžื” ื–ื” ื ื’ืžืจ ื‘ืขื•ื“ืฃ ื ื™ืกื™ื•ื ื•ืช ืœื™ืฆื•ืจ ื—ื™ื‘ื•ืจ ืขื ื”ืžื›ื•ื ื” ื”ื•ื™ืจื˜ื•ืืœื™ืช.

ื”ื›ืœ ืขื ื™ื™ืŸ ืฉืœ ืžื“ื™ื ื™ื•ืช ืชืขื•ื“ื•ืช. ื‘ืขืช ื™ืฆื™ืจืช ืžื›ื•ื ื” ื•ื™ืจื˜ื•ืืœื™ืช, ืชื”ื™ื” ืœืš ืกืคืจื™ื™ืช ~.dockermachinemachinesdev ื‘ืกืคืจื™ื™ื” ื–ื• ื™ื”ื™ื• ืงื‘ืฆื™ ืื™ืฉื•ืจื™ื ืœื—ื™ื‘ื•ืจ ื‘ืืžืฆืขื•ืช SSH: id_rsa, id_rsa.pub. OpenSSH ืขืฉื•ื™ ืœืกืจื‘ ืœื”ืฉืชืžืฉ ื‘ื”ื ื›ื™ ื”ื•ื ื—ื•ืฉื‘ ืฉื™ืฉ ืœื”ื ื‘ืขื™ื•ืช ื”ืจืฉืื”. ืจืง docker-machine ืœื ื™ื’ื™ื“ ืœืš ื›ืœื•ื ืขืœ ื–ื”, ืืœื ืคืฉื•ื˜ ื™ืชื—ื‘ืจ ืžื—ื“ืฉ ืขื“ ืฉื™ืฉืชืขืžื.

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

ื”ืงื•ื‘ืฅ ื—ื™ื™ื‘ ืœื”ื™ื•ืช ื‘ื‘ืขืœื•ืช ื”ืžืฉืชืžืฉ ื”ื ื•ื›ื—ื™, ืจืง ืœืžืฉืชืžืฉ ื”ื ื•ื›ื—ื™ ื•ืœ-SYSTEM ื™ืฉ ื’ื™ืฉื” ืžืœืื”, ื™ืฉ ืœืžื—ื•ืง ืืช ื›ืœ ืฉืืจ ื”ืžืฉืชืžืฉื™ื, ื›ื•ืœืœ ืงื‘ื•ืฆืช ื”ืžื ื”ืœื™ื ื•ื”ืžื ื”ืœื™ื ืขืฆืžื.

ื™ื™ืชื›ื ื• ื’ื ื‘ืขื™ื•ืช ื‘ื”ืžืจืช ื ืชื™ื‘ื™ื ืžื•ื—ืœื˜ื™ื ืžืคื•ืจืžื˜ Windows ืœืคื•ืจืžื˜ Posix, ื•ื›ืจื›ื™ื ืžื—ื™ื™ื‘ื™ื ื”ืžื›ื™ืœื™ื ืงื™ืฉื•ืจื™ื ืกืžืœื™ื™ื. ืื‘ืœ ื–ื” ื›ื‘ืจ ืกื™ืคื•ืจ ืื—ืจ.

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

ื”ื•ืกืคืช ืชื’ื•ื‘ื”