如何在Powershell中为Windows进程重启Docker?

时间:2018-08-09 06:30:10

标签: powershell docker docker-for-windows

我想在Powershell中重新启动docker for windows

就像我可以在Powershell中使用一个命令来完成它一样。

enter image description here

我可以实施吗?

使用Restart-Service *docker*时:

enter image description here

3 个答案:

答案 0 :(得分: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 for Windows”实例不应超过1个,这样您就可以杀死列表中的第一个实例。

要重新启动,您需要知道计算机上“ Docker for Windows.exe”文件的完整路径。

答案 1 :(得分:0)

您可以在Powershell中使用

restart-service *docker*

或者将Docker QuickStart Terminal插入诠释:

docker-machine restart

答案 2 :(得分:0)

类似于上面的Sebastian 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),这就是为什么您必须做两次。