Как перезапустить докер для процесса windows в powershell?

Я хочу перезагрузить docker for windows в PowerShell.

так же, как я могу сделать это с помощью одной команды в powershell.

Могу ли я реализовать это?

Когда используешь Restart-Service *docker*:

4 ответа

Это может быть немного уродливым решением, но оно работает для меня:

$processes = Get-Process "*docker for windows*"
if ($processes.Count -gt 0)
{
    $processes[0].Kill()
    $processes[0].WaitForExit()
}
Start-Process "C:\Program Files\Docker\Docker\Docker for Windows.exe"

В предложении if я проверяю, был ли найден какой-либо запущенный процесс. Никогда не должно быть запущено более одного экземпляра "Docker для Windows", чтобы вы могли затем убить первый в списке.

Для перезагрузки вам необходимо знать полный путь к файлу "Docker for Windows.exe" на вашем компьютере.

В Windows откройте рабочий стол Docker и щелкните значок отладки, а затем перезапустите. Вы также можете рассмотреть «сброс к заводским настройкам».

Вы можете использовать в PowerShell:

restart-service *docker*

Или в терминале Docker QuickStart:

docker-machine restart

Подобно комментарию Себастьяна L выше, но немного чище и быстрее, если вы знаете, используете ли вы в настоящее время контейнеры Linux или Windows.

Если вы используете контейнеры Linux

    Stop-Service *docker*        
    Start-Service *docker*
    &$Env:ProgramFiles\Docker\Docker\DockerCli.exe -SwitchLinuxEngine

Если запущены контейнеры Windows

    Stop-Service *docker*        
    Start-Service *docker*
    &$Env:ProgramFiles\Docker\Docker\DockerCli.exe -SwitchWindowsEngine

-SwitchDaemon переключается с одного на другой (с Linux на Windows или с Windows на Linux), поэтому вам нужно сделать это дважды.

Другие вопросы по тегам