Задача была простая, установить 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. исправить , со ссылкой на базу знаний Microsoft Управление Credential Guard в Защитнике Windows .
Решение — отключить Defender Credential Guard (мне помог пункт 4 раздела Отключить Credential Guard в Windows Defender): mountvol X: /s
copy %WINDIR%\System32\SecConfig.efi X:\EFI\Microsoft\Boot\SecConfig.efi /Y
bcdedit /create {0cb3b571-2f2e-4343-a879-d86a476d7215} /d "DebugTool" /application osloader
bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} path "\EFI\Microsoft\Boot\SecConfig.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, ссылка на гитхаб Инструкцию по установке особо пересказывать не буду, просто список ингредиентов:
- Панель инструментов Докера ( Докер-машина включено)
- Драйвер рабочей станции Docker Machine VMware
- Докер Рабочий стол
Если вы его снесли, то установите заново, но на этот раз сняв галочку о внесении изменений в ОС, чтобы лишний раз не ломать VMWare Workstation. Сразу отмечу, что от простого пользователя все работает нормально, программы установки будут запрашивать повышение прав, когда им это понадобится, но все команды в командной строке и скрипты выполняются от текущего пользователя.
В результате команда: $ docker-machine create --driver=vmwareworkstation dev
из Boot2Docker будет создана виртуальная машина разработки, внутри которой будет установлен Docker.
Эту виртуальную машину можно подключить к графическому интерфейсу VMWare Workstation, открыв соответствующий vmx-файл.
Но это не обязательно, потому что VSCode теперь нужно будет запускать PowerShell как скрипт (почему-то в папке bin оказались docker-machine и docker-machine-driver-vmwareworkstation): cd ~/bin
.
/docker-machine env dev | Invoke-Expression
code
VSCode откроется для работы с кодом на локальной машине и Docker на виртуальной машине.
Плагин Докер для кода Visual Studio позволяет удобно управлять контейнерами на виртуальной машине, не заходя в консоль.
Сложности:
Во время создания докер-машины у меня завис процесс: Waiting for SSH to be available.
И через некоторое время это закончилось новыми попытками установить соединение с виртуальной машиной.
Все дело в политике сертификатов.
При создании виртуальной машины у вас будет каталог ~\.
docker\machine\machines\dev в этом каталоге будут файлы сертификатов для подключения по SSH: id_rsa, id_rsa.pub. OpenSSH может отказаться использовать их, поскольку считает, что у них проблемы с разрешениями.
Только докер-машина вам ничего по этому поводу не скажет, она просто будет переподключаться, пока не надоест. Решение: Как только начнется создание новой виртуальной машины, перейдите в каталог ~\.
docker\machine\machines\dev и по одному измените права на указанные файлы.
Владельцем файла должен быть текущий пользователь, полный доступ имеют только текущий пользователь и СИСТЕМА, всех остальных пользователей, включая группу администраторов и самих администраторов, необходимо удалить.
Также могут возникнуть проблемы с преобразованием абсолютных путей из формата Windows в Posix и с привязкой томов, содержащих символическую ссылку.
Но это уже другая история.
Теги: #Виртуализация #Windows #docker #DevOps #Visual Studio #vscode #vmware Workstation
-
Цветная Музыка Для Ipod
19 Oct, 24 -
Трейнер От Мегафон
19 Oct, 24 -
Батарейки Аааа От Кроны 9В.
19 Oct, 24 -
Коварные Болезни: Легионеллез
19 Oct, 24 -
Идеальная Система Комментариев
19 Oct, 24 -
Цезарь Iii: Игровой Цикл
19 Oct, 24