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'ты өчүрүү (Windows Defender Credential Guard өчүрүү бөлүмүнүн 4-пункту мага жардам берди):

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 Engine'ди виртуалдык хостто иштетүүгө жана ага алыстан да, жергиликтүү түрдө да туташуу мүмкүнчүлүгүн берет. Ал үчүн VMWare Workstation шайкештик драйвери бар, githubга шилтеме

Мен өзгөчө орнотуу көрсөтмөлөрүн кайталабайм, болгону ингредиенттердин тизмеси:

  1. Docker Toolbox (Докер машинасы топтомдо)
  2. Docker Machine VMware Workstation драйвери
  3. DockerDesktop

Ооба, тилекке каршы, Docker Desktop да керек болот. Эгер сиз аны бузуп салсаңыз, анда аны кайра орнотуңуз, бирок бул жолу VMWare Workstation кайра бузулбаш үчүн, ОСке өзгөртүүлөрдү киргизүү жөнүндө кутучаны алып салыңыз.

Мен дароо белгилеп кетким келет, баары жөнөкөй колдонуучудан жакшы иштейт, орнотуу программалары керек болгондо укуктарды жогорулатууну суранышат, бирок буйрук сабындагы жана скрипттердеги бардык буйруктар учурдагы колдонуучудан аткарылат.

Жыйынтыгында команда:

$ docker-machine create --driver=vmwareworkstation dev

Boot2Dockerден, Докер боло турган dev virtualka түзүлөт.

Бул виртуалдык машина тиешелүү vmx файлын ачуу менен VMWare Workstation GUIге тиркелиши мүмкүн. Бирок бул зарыл эмес, анткени VSCode азыр PowerShell скриптин иштетиши керек болот (кандайдыр бир себептерден улам менин докер-машинам жана докер-машина-драйвер-vmwareworkstation бин папкасында калды):

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

VSCode жергиликтүү машинадагы код жана виртуалдык машинадагы докер менен иштөө үчүн ачылат. плагин Visual Studio Code үчүн докер консолго кирбестен виртуалдык машинадагы контейнерлерди ыңгайлуу башкарууга мүмкүндүк берет.

Кыйынчылыктар:

Докер-машинаны түзүү процессинде мен үчүн процесс:

Waiting for SSH to be available...

Docker жана VMWare Workstation бир эле Windows машинасында

Ал эми бир аз убакыт өткөндөн кийин, ал виртуалдык машина менен байланыш түзүү аракети ашыкча аяктады.

Мунун баары сертификат саясатына байланыштуу. Виртуалдык машинаны түзүп жатканда, сизде ~.dockermachinemachinesdev каталогу болот, бул каталогдо SSH аркылуу туташуу үчүн сертификат файлдары болот: id_rsa, id_rsa.pub. OpenSSH аларды колдонуудан баш тартышы мүмкүн, анткени аларда уруксат маселеси бар деп ойлойт. Бир гана докер-машина сизге бул жөнүндө эч нерсе айтпайт, бирок ал тажаганга чейин кайра кошулат.

чечим: Жаңы виртуалдык машина түзүлө баштаганда, биз ~ .dockermachinemachinesdev каталогуна кирип, көрсөтүлгөн файлдарга болгон укуктарды бирден өзгөртөбүз.

Файл учурдагы колдонуучуга таандык болушу керек, учурдагы колдонуучуга жана СИСТЕМАга гана толук мүмкүнчүлүк бар, бардык башка колдонуучулар, анын ичинде администраторлор тобу жана администраторлор өздөрү жок кылынышы керек.

Windows-тан Posix форматына абсолюттук жолдорду конвертациялоодо жана символикалык шилтемелерди камтыган томдорду бириктирүүдө да көйгөйлөр болушу мүмкүн. Бирок бул башка окуя.

Source: www.habr.com

Комментарий кошуу