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 Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° 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 Ρ‰Π΅ сС Π²ΡŠΡ€Π½Π΅ към Π½ΠΎΡ€ΠΌΠ°Π»Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΈ Ρ‰Π΅ сС ΠΎΠΊΠ°ΠΆΠ΅ΠΌ Π½Π° ΡΡŠΡ‰ΠΎΡ‚ΠΎ място, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΈ инсталиранСто Π½Π° docker.

НС Π½Π°ΠΌΠ΅Ρ€ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ Π΄Π° ΡΡŠΠ³Π»Π°ΡΡƒΠ²Π°ΠΌ Hyper-V ΠΈ VMWare Workstation, надявам сС Π΄Π° станат приятСли Π² Π½ΠΎΠ²ΠΈΡ‚Π΅ вСрсии.

Π”Ρ€ΡƒΠ³ Π½Π°Ρ‡ΠΈΠ½

ΠžΡ‚Π΄Π°Π²Π½Π° бях пристрастСн към VMWare Workstation Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ†Π΅Π»ΠΈ, ΠΎΠΏΠΈΡ‚Π°Ρ… сС Π΄Π° сляза Π½Π° Hyper-V ΠΈ VirtualBox, Π½ΠΎ функционалността Π½Π΅ Π·Π°Π΄ΠΎΠ²ΠΎΠ»ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈΡ‚Π΅ ΠΌΠΈ ΠΈ Ρ‚Π°ΠΊΠ° сСдя Π΄ΠΎ Π΄Π΅Π½ днСшСн. Оказа сС, Ρ‡Π΅ ΠΈΠΌΠ° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ Π΄Π° сС сприятСляват VMWare, Docker ΠΈ VSCode Π² Π΅Π΄Π½Π° Ρ€Π°Π±ΠΎΡ‚Π½Π° срСда.

Docker машина - позволява Π²ΠΈ Π΄Π° стартиратС Docker Engine Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π΅Π½ хост ΠΈ Π΄Π° сС ΡΠ²ΡŠΡ€ΠΆΠ΅Ρ‚Π΅ с Π½Π΅Π³ΠΎ ΠΊΠ°ΠΊΡ‚ΠΎ ΠΎΡ‚Π΄Π°Π»Π΅Ρ‡Π΅Π½ΠΎ, Ρ‚Π°ΠΊΠ° ΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΎ. И ΠΈΠΌΠ° Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ Π·Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ с VMWare Workstation, Π»ΠΈΠ½ΠΊ към github

Няма Π΄Π° ΠΏΡ€Π΅Ρ€Π°Π·ΠΊΠ°Π·Π²Π°ΠΌ спСциално инструкциитС Π·Π° инсталиранС, само списъка Π½Π° ΡΡŠΡΡ‚Π°Π²ΠΊΠΈΡ‚Π΅:

  1. ΠšΡƒΡ‚ΠΈΡ с инструмСнти Docker (Docker машина Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈ)
  2. Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ Π·Π° Docker Machine VMware Workstation
  3. DockerDesktop

Π”Π°, Docker Desktop, Π·Π° съТалСниС, ΡΡŠΡ‰ΠΎ Ρ‰Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ. Ако стС Π³ΠΎ Ρ€Π°Π·Ρ€ΡƒΡˆΠΈΠ»ΠΈ, инсталирайтС Π³ΠΎ ΠΎΡ‚Π½ΠΎΠ²ΠΎ, Π½ΠΎ Ρ‚ΠΎΠ·ΠΈ ΠΏΡŠΡ‚ ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π΅Ρ‚Π΅ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΠ°Ρ‚Π° Π·Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма, Π·Π° Π΄Π° Π½Π΅ счупитС VMWare Workstation ΠΎΡ‚Π½ΠΎΠ²ΠΎ.

Искам Π²Π΅Π΄Π½Π°Π³Π° Π΄Π° ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠ°, Ρ‡Π΅ всичко Ρ€Π°Π±ΠΎΡ‚ΠΈ Π΄ΠΎΠ±Ρ€Π΅ ΠΎΡ‚ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π», инсталационнитС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ Ρ‰Π΅ поискат Сскалация Π½Π° ΠΏΡ€Π°Π²Π°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠΌΠ°Ρ‚ Π½ΡƒΠΆΠ΄Π° ΠΎΡ‚ Ρ‚ΠΎΠ²Π°, Π½ΠΎ всички ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π² командния Ρ€Π΅Π΄ ΠΈ скриптовС сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ ΠΎΡ‚ тСкущия ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π».

Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ²Π° Π΅ΠΊΠΈΠΏΡŠΡ‚:

$ docker-machine create --driver=vmwareworkstation dev

ΠΎΡ‚ Boot2Docker Ρ‰Π΅ бъдС създадСна dev virtualka, Π²ΡŠΡ‚Ρ€Π΅ Π² която Ρ‰Π΅ бъдС Docker.

Π’Π°Π·ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π° машина ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠ΅Π½Π° към GUI Π½Π° VMWare Workstation Ρ‡Ρ€Π΅Π· отварянС Π½Π° ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΈΡ vmx Ρ„Π°ΠΉΠ». Но Ρ‚ΠΎΠ²Π° Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ VSCode сСга Ρ‰Π΅ трябва Π΄Π° изпълни скрипт Π½Π° PowerShell (ΠΏΠΎ някаква ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° моята docker-machine ΠΈ docker-machine-driver-vmwareworkstation сС ΠΎΠ·ΠΎΠ²Π°Ρ…Π° Π² ΠΏΠ°ΠΏΠΊΠ°Ρ‚Π° bin):

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

VSCode Ρ‰Π΅ сС ΠΎΡ‚Π²ΠΎΡ€ΠΈ, Π·Π° Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ с ΠΊΠΎΠ΄ Π½Π° Π»ΠΎΠΊΠ°Π»Π½Π°Ρ‚Π° машина ΠΈ Π΄ΠΎΠΊΠ΅Ρ€ във Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π°Ρ‚Π° машина. плъгин Docker Π·Π° Visual Studio Code Π²ΠΈ позволява ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π΄Π° управляватС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ във Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π° машина, Π±Π΅Π· Π΄Π° Π²Π»ΠΈΠ·Π°Ρ‚Π΅ Π² ΠΊΠΎΠ½Π·ΠΎΠ»Π°Ρ‚Π°.

трудности:

Π’ процСса Π½Π° създаванС Π½Π° Π΄ΠΎΠΊΠ΅Ρ€-машина, ΠΏΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ увисна Π·Π° ΠΌΠ΅Π½:

Waiting for SSH to be available...

Docker ΠΈ VMWare Workstation Π½Π° Π΅Π΄Π½Π° ΠΈ ΡΡŠΡ‰Π° машина с Windows

И слСд извСстно Π²Ρ€Π΅ΠΌΠ΅ ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡ΠΈ с излишък ΠΎΡ‚ ΠΎΠΏΠΈΡ‚ΠΈ Π·Π° установяванС Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠ° с Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π°Ρ‚Π° машина.

Всичко Π΅ Π²ΡŠΠΏΡ€ΠΎΡ Π½Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° Π·Π° сСртификати. ΠšΠΎΠ³Π°Ρ‚ΠΎ ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π° машина, Ρ‰Π΅ ΠΈΠΌΠ°Ρ‚Π΅ дирСктория ~.dockermachinemachinesdev Π² Ρ‚Π°Π·ΠΈ дирСктория Ρ‰Π΅ ΠΈΠΌΠ° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ със сСртификати Π·Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Ρ‡Ρ€Π΅Π· SSH: id_rsa, id_rsa.pub. OpenSSH ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΡ‚ΠΊΠ°ΠΆΠ΅ Π΄Π° Π³ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°, Π·Π°Ρ‰ΠΎΡ‚ΠΎ смята, Ρ‡Π΅ ΠΈΠΌΠ°Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ‚Π°. Π‘Π°ΠΌΠΎ Π΄ΠΎΠΊΠ΅Ρ€-ΠΌΠ°ΡˆΠΈΠ½Π°Ρ‚Π° няма Π΄Π° Π²ΠΈ ΠΊΠ°ΠΆΠ΅ Π½ΠΈΡ‰ΠΎ Π·Π° Ρ‚ΠΎΠ²Π°, Π° просто Ρ‰Π΅ сС ΡΠ²ΡŠΡ€ΠΆΠ΅ ΠΎΡ‚Π½ΠΎΠ²ΠΎ, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Π½Π΅ сС ΠΎΡ‚Π΅Π³Ρ‡ΠΈ.

Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅: Π’Π΅Π΄Π½Π°Π³Π° слСд ΠΊΠ°Ρ‚ΠΎ Π·Π°ΠΏΠΎΡ‡Π½Π΅ ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π½ΠΎΠ²Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π° машина, ΠΎΡ‚ΠΈΠ²Π°ΠΌΠ΅ Π² дирСкторията ~ .dockermachinemachinesdev ΠΈ промСнямС ΠΏΡ€Π°Π²Π°Ρ‚Π° Π²ΡŠΡ€Ρ…Ρƒ посочСнитС Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π΅Π΄ΠΈΠ½ ΠΏΠΎ Π΅Π΄ΠΈΠ½.

Π€Π°ΠΉΠ»ΡŠΡ‚ трябва Π΄Π° Π΅ собствСност Π½Π° тСкущия ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π», само тСкущият ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» ΠΈ Π‘Π˜Π‘Π’Π•ΠœΠΠ’Π ΠΈΠΌΠ°Ρ‚ пълСн Π΄ΠΎΡΡ‚ΡŠΠΏ, всички останали ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π³Ρ€ΡƒΠΏΠ°Ρ‚Π° администратори ΠΈ самитС администратори, трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΈΠ·Ρ‚Ρ€ΠΈΡ‚ΠΈ.

Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΄Π° ΠΈΠΌΠ° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ΠΏΡ€ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΈ ΠΏΡŠΡ‚ΠΈΡ‰Π° ΠΎΡ‚ Windows във Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Posix ΠΈ ΠΎΠ±Π²ΡŠΡ€Π·Π²Π°Π½Π΅ Π½Π° Ρ‚ΠΎΠΌΠΎΠ²Π΅, ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‰ΠΈ символни Π²Ρ€ΡŠΠ·ΠΊΠΈ. Но Ρ‚ΠΎΠ²Π° Π΅ Π΄Ρ€ΡƒΠ³Π° история.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€