概要
最新版を使いたい欲に駆られてWindows版Docker v17.06.2-ceをv17.09.0-ceにアップデートしたら、恒例の再起不能状態になりましたOrz
そして、いつも通りにリセットしたりもしましたが、効果なし!!
エラーログを見てもよくわからなかったので、意を決してダウングレードするためにDockerのアンインストールを実行したが、
アンインストール中に応答なしになり、アンインストールすることすらできませんでした・・・八方塞がり・・・
いろいろ調べた結果として強制アンインストールする方法がありましたので、ご紹介したいと思います。
また、旧バージョンのインストーラのダウンロード方法もあわせてご紹介したいと思います。(記録用に)
強制アンインストールする方法
-
Windows PowerShellを管理者モードで起動し、下記のコマンドを実行する
$ErrorActionPreference = "SilentlyContinue" kill -force -processname 'Docker for Windows', com.docker.db, vpnkit, com.docker.proxy, com.docker.9pdb, moby-diag-dl, dockerd try { ./MobyLinux.ps1 -Destroy } Catch {} $service = Get-WmiObject -Class Win32_Service -Filter "Name='com.docker.service'" if ($service) { $service.StopService() } if ($service) { $service.Delete() } Start-Sleep -s 5 Remove-Item -Recurse -Force "~/AppData/Local/Docker" Remove-Item -Recurse -Force "~/AppData/Roaming/Docker" if (Test-Path "C:\ProgramData\Docker") { takeown.exe /F "C:\ProgramData\Docker" /R /A /D Y } if (Test-Path "C:\ProgramData\Docker") { icacls "C:\ProgramData\Docker\" /T /C /grant Administrators:F } Remove-Item -Recurse -Force "C:\ProgramData\Docker" Remove-Item -Recurse -Force "C:\Program Files\Docker" Remove-Item -Recurse -Force "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Docker" Remove-Item -Force "C:\Users\Public\Desktop\Docker for Windows.lnk" Get-ChildItem HKLM:\software\microsoft\windows\currentversion\uninstall | % {Get-ItemProperty $_.PSPath} | ? { $_.DisplayName -eq "Docker" } | Remove-Item -Recurse -Force Get-ChildItem HKLM:\software\classes\installer\products | % {Get-ItemProperty $_.pspath} | ? { $_.ProductName -eq "Docker" } | Remove-Item -Recurse -Force Get-Item 'HKLM:\software\Docker Inc.' | Remove-Item -Recurse -Force Get-ItemProperty HKCU:\software\microsoft\windows\currentversion\Run -name "Docker for Windows" | Remove-Item -Recurse -Force #Get-ItemProperty HKCU:\software\microsoft\windows\currentversion\UFH\SHC | ForEach-Object {Get-ItemProperty $_.PSPath} | Where-Object { $_.ToString().Contains("Docker for Windows.exe") } | Remove-Item -Recurse -Force $_.PSPath #Get-ItemProperty HKCU:\software\microsoft\windows\currentversion\UFH\SHC | Where-Object { $(Get-ItemPropertyValue $_) -Contains "Docker" }
※引用:https://success.docker.com/KBase/How_to_completely_remove_Docker
-
「プログラムの追加と削除」に「Docker for Windows」が登録されたままになっているので、CCleanerなどのツールで削除する
※一部のバージョンのCCleanerにマルウエアが混入している事件が発生してるので、それらを避けるか最新版を導入してください
過去のDockerインストーラのダウンロード方法
公式サイトの過去バージョンのインストーラからダウングレードする
chocolateyからダウングレードする
- chocolateyにアップロードされているインストールスクリプトに含まれているURLから取得する
- バージョン履歴から対象のバージョンを選択する
- インストールスクリプト(showをクリック)に含まれているインストーラURLからダウンロード
- ダウンロードしたインストーラを実行する