Je veux redémarrer docker for windows
en PowerShell.
tout comme je peux le faire avec une seule commande dans PowerShell.
Puis-je l'implémenter?
Lors de l'utilisation de Restart-Service *docker*
:
Tuez et redémarrez le processus de docker:
$processes = Get-Process "*docker desktop*"
if ($processes.Count -gt 0)
{
$processes[0].Kill()
$processes[0].WaitForExit()
}
Start-Process "C:\Program Files\Docker\Docker\Docker Desktop.exe"
Dans la clause if
, je vérifie si un processus docker en cours d'exécution a été trouvé. Il ne devrait jamais y avoir plus d'une instance de "Docker Desktop" en cours d'exécution, vous pouvez donc tuer la première de la liste.
Pour redémarrer, vous devez connaître le chemin complet du fichier "Docker Desktop.exe" sur votre ordinateur.
Vous pouvez utiliser dans powershell:
restart-service *docker*
Ou dans le Docker QuickStart Terminal:
docker-machine restart
Similaire au commentaire de Sebastian L ci-dessus, mais légèrement plus propre et plus rapide si vous savez si vous utilisez actuellement des conteneurs Linux ou Windows.
Si vous exécutez des conteneurs Linux
Stop-Service *docker*
Start-Service *docker*
&$Env:ProgramFiles\Docker\Docker\DockerCli.exe -SwitchLinuxEngine
Si vous exécutez des conteneurs Windows
Stop-Service *docker*
Start-Service *docker*
&$Env:ProgramFiles\Docker\Docker\DockerCli.exe -SwitchWindowsEngine
-SwitchDaemon bascule de l'un à l'autre (Linux vers Windows ou Windows vers Linux), c'est pourquoi vous devez le faire deux fois.