Я пытаюсь написать сценарий PowerShell (с использованием PS core 7.0) для установки и настройки кластера Kubernetes, работающего на Kind, на Windows 10 машинах, используемых моими командами. У меня есть рабочий сценарий для запуска и настройки кластера, единственная проблема заключается в том, что я хотел бы (должен) убедиться, что на настольной виртуальной машине Docker достаточно памяти, чтобы одновременно запустить несколько наших микро-служб внутри кластера. время.
Я собрал немного кода для выполнения задачи, и он работает до самого последнего шага, где я пытаюсь заставить демона docker снова работать после перезапуска. Как только я запускаю команду, чтобы сделать это, виртуальная машина переконфигурируется обратно к своему предыдущему объему памяти.
Вот что мне нужно для изменения размера:
Stop-Service *docker*
Get-VM DockerDesktopVM | Stop-VM
Get-VM DockerDesktopVM | Set-VMMemory -StartupBytes 12888MB
Get-VM DockerDesktopVM | Start-VM
Start-Service *docker*
# https://stackoverflow.com/questions/51760214/how-to-restart-docker-for-windows-process-in-powershell
&$Env:ProgramFiles\Docker\Docker\DockerCli.exe -SwitchDaemon
&$Env:ProgramFiles\Docker\Docker\DockerCli.exe -SwitchDaemon
Примечание: я нашел пост @ Как перезапустить docker для windows процесса в powershell? где я получил последние 2 строки.
При дальнейшем изучении проблемы я обнаружил, что вместо этого могу использовать следующую единственную строку, но у меня все еще остается та же проблема, заключающаяся в том, что объем памяти возвращается после выполнения команды.
&$Env:ProgramFiles\Docker\Docker\DockerCli.exe -SwitchLinuxEngine
Если я не запускаю DockerCli.exe -SwitchDaemon дважды или DockerCli.exe -SwitchLinuxEngine один раз, то я получаю ошибку:
ошибка при соединении: Get http: // % 2F% 2F.% 2Fpipe% 2Fdocker_engine / v1.40 / container / json: открыть //./pipe/docker_engine: Системе не удается найти указанный файл. В конфигурации демона по умолчанию в Window s клиент docker должен быть запущен с повышенными правами для подключения. Эта ошибка также может указывать на то, что демон docker не работает.
Есть ли лучший способ go относительно изменения размера памяти виртуальной машины или выключения и перезапуска docker без изменения быть возвращенным?