PowerShellでdocker for windows
を再起動したい。
powershellの1つのコマンドで実行できるように。
実装してもいいですか?
Restart-Service *docker*
を使用する場合:
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"
if
句で、実行中のDockerプロセスが見つかったかどうかを確認します。リスト内の最初のインスタンスを強制終了できるように、実行中の「Dockerデスクトップ」のインスタンスが1つを超えることはありません。
再起動するには、コンピュータ上の「Docker Desktop.exe」ファイルの完全なパスを知っている必要があります。
あなたはpowershellで使うことができます:
restart-service *docker*
または、Docker QuickStartターミナルをintします。
docker-machine restart
上記の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は、1つからもう1つに切り替えます(LinuxからWindowsまたはWindowsからLinux)。これが、2度行う必要がある理由です。