ΠΠ°Π΄Π°ΡΠ° Π±ΡΠ»ΠΎ ΠΏΡΠΎΡΡΠΎΠΉ, ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ 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.
Π Π°Π±ΠΎΡΠ° Π²ΡΡΠ°Π»Π°, Π½ΡΠΆΠ½ΠΎ ΡΡΠΎΡΠ½ΠΎ ΡΠΈΠ½ΠΈΡΡ
ΠΠ΅ΡΠΎΠ΄ΠΎΠΌ Π³ΡΠ³Π»Π΅Π½ΠΈΡ Π±ΡΠ»ΠΎ Π²ΡΡΡΠ½Π΅Π½ΠΎ, ΡΡΠΎ Π΄Π°Π½Π½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΈΠ·-Π·Π° Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ VMWare Workstation ΠΈ Hyper-V Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΈΠ·Π²Π΅ΡΡΠ½Π°Ρ ΠΈ Π΅ΡΡΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ VMWare ΠΊΠ°ΠΊ ΡΡΠΎ
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 Workstation Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΡΠ΅Π»Π΅ΠΉ, ΠΏΡΡΠ°Π»ΡΡ ΡΠ»Π΅Π·ΡΡ Π½Π° Hyper-V ΠΈ VirtualBox, Π½ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» Π½Π΅ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠΈΠ» ΠΌΠΎΠΈΠΌ Π·Π°Π΄Π°ΡΠ°ΠΌ, ΡΠ°ΠΊ ΠΏΠΎ ΡΠ΅ΠΉ Π΄Π΅Π½Ρ ΠΈ ΡΠΈΠΆΡ. ΠΠΊΠ°Π·Π°Π»ΠΎΡΡ Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠ΄ΡΡΠΆΠΈΡΡ VMWare, Docker ΠΈ VSCode Π² ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΡΡΠ΅Π΄Π΅.
ΠΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΠΎΡΠΎΠ±ΠΎ ΠΏΠ΅ΡΠ΅ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π΅ Π±ΡΠ΄Ρ, ΡΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ½Π³ΡΠΈΠ΄ΠΈΠ΅Π½ΡΠΎΠ²:
Docker Toolbox (Docker Machine Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ΅)Docker Machine VMware Workstation Driver - Docker Desktop
ΠΠ°, Docker Desktop, ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΡΠΎΠΆΠ΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ. ΠΡΠ»ΠΈ ΡΠ½Π΅ΡΠ»ΠΈ Π΅Π³ΠΎ, ΡΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π·Π°Π½ΠΎΠ²ΠΎ, Π½ΠΎ Π½Π° ΡΡΠΎΡ ΡΠ°Π· ΡΠ±ΡΠ°Π² ΡΠ΅ΠΊΠ±ΠΎΠΊΡ ΠΎ Π²Π½Π΅ΡΠ΅Π½ΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΠ‘, ΡΡΠΎΠ± Π²Π½ΠΎΠ²Ρ Π½Π΅ ΡΠ»ΠΎΠΌΠ°ΡΡ VMWare Workstation.
Π‘ΡΠ°Π·Ρ Ρ ΠΎΡΡ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π²ΡΡ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΎΡ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠΎΠΏΡΠΎΡΡΡ ΡΡΠΊΠ°Π»Π°ΡΠΈΡ ΠΏΡΠ°Π² ΠΊΠΎΠ³Π΄Π° ΠΈΠΌ Π±ΡΠ΄Π΅Ρ Π½ΡΠΆΠ½ΠΎ, Π½ΠΎ Π²ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΈ ΡΠΊΡΠΈΠΏΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΎΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
Π ΠΈΡΠΎΠ³Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
$ docker-machine create --driver=vmwareworkstation dev
ΠΈΠ· Boot2Docker Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½Π° Π²ΠΈΡΡΡΠ°Π»ΠΊΠ° dev Π²Π½ΡΡΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ΄Π΅Ρ Docker.
ΠΡΡ Π²ΠΈΡΡΡΠ°Π»ΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΠ΅ΠΏΠΈΡΡ Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ VMWare Workstation, ΠΎΡΠΊΡΡΠ² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ vmx ΡΠ°ΠΉΠ». ΠΠΎ ΡΡΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π²Π΅Π΄Ρ VSCode ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ PowerShell ΡΠΊΡΠΈΠΏΡΠΎΠΌ (Ρ ΠΌΠ΅Π½Ρ ΠΏΠΎΡΠ΅ΠΌΡ-ΡΠΎ docker-machine ΠΈ docker-machine-driver-vmwareworkstation ΠΎΠΊΠ°Π·Π°Π»ΠΈΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² ΠΏΠ°ΠΏΠΊΠ΅ bin):
cd ~/bin
./docker-machine env dev | Invoke-Expression
code
ΠΡΠΊΡΠΎΠ΅ΡΡΡ VSCode Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠ΄ΠΎΠΌ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ ΠΈ Π΄ΠΎΠΊΠ΅ΡΠΎΠΌ Π² Π²ΠΈΡΡΡΠ°Π»ΠΊΠ΅. ΠΠ»Π°Π³ΠΈΠ½
Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΠΈ:
Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ docker-machine Ρ ΠΌΠ΅Π½Ρ ΠΏΡΠΎΡΠ΅ΡΡ Π·Π°Π²ΠΈΡΠ°Π»:
Waiting for SSH to be available...
Π ΡΠ΅ΡΠ΅Π· Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π·Π°Π²Π΅ΡΡΠΈΠ»ΡΡ Ρ ΠΏΡΠ΅Π²ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠΏΡΡΠΎΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ Π²ΠΈΡΡΡΠ°Π»ΠΊΠΎΠΉ.
ΠΡΡ Π΄Π΅Π»ΠΎ Π² ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ΅ ΠΊ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°ΠΌ. ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ, Ρ Π²Π°Ρ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ~.dockermachinemachinesdev Π² ΡΡΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Π±ΡΠ΄ΡΡ ΡΠ°ΠΉΠ»Ρ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎ SSH: id_rsa, id_rsa.pub. OpenSSH ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΈΡΠ°Π΅Ρ ΡΡΠΎ Ρ Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ Π΄ΠΎΡΡΡΠΏΠ°. Π’ΠΎΠ»ΡΠΊΠΎ Π²ΠΎΡ docker-machine Π²Π°ΠΌ ΠΎΠ± ΡΡΠΎΠΌ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΡΠΊΠ°ΠΆΠ΅Ρ, Π° ΠΏΡΠΎΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΏΠΎΠΊΠ° Π½Π΅ Π½Π°Π΄ΠΎΠ΅ΡΡ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅: ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠ½Π΅ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ Π·Π°Ρ ΠΎΠ΄ΠΈΠΌ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ~.dockermachinemachinesdev ΠΈ ΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΏΡΠ°Π²Π° Π½Π° ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ.
ΠΠ»Π°Π΄Π΅Π»ΡΡΠ΅ΠΌ ΡΠ°ΠΉΠ»Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΏΠΎΠ»Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ SYSTEM, Π²ΡΠ΅Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, Π²ΠΊΠ»ΡΡΠ°Ρ Π³ΡΡΠΏΠΏΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠ² ΠΈ ΡΠ°ΠΌΠΈΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠ² Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΡΡΡ.
Π’Π°ΠΊ ΠΆΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΡ
ΠΏΡΡΠ΅ΠΉ ΠΈΠ· Windows ΡΠΎΡΠΌΠ°ΡΠ° Π² Posix, ΠΈ Ρ Π±ΠΈΠ½Π΄ΠΈΠ½Π³ΠΎΠΌ ΡΠΎΠΌΠΎΠ² ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ
symbolic link. ΠΠΎ ΡΡΠΎ ΡΠΆΠ΅ Π΄ΡΡΠ³Π°Ρ ΠΈΡΡΠΎΡΠΈΡ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com