只有累積,沒有奇蹟

2019年8月5日 星期一

[Docker] Windows 10 中移除 Docker for Windows 的另一種方式

問題 
這幾天公司筆電出了點小問題,因此需要將筆電中部分軟體做移除,在進行 Docker for windows 移除時意外的發現卡在預設的 Docker for windows 移除畫面非常久,重試幾次都是跑 10 分鐘以上都未進行到下一步,且移除畫面未提供任何進度,意外中發現不同的方式可以移除 Windows 上的 Docker,且移除速度較預設移除方式來的更快,這篇就來分享如何透過 非一般方式 移除 Docker,若有謬誤或是更快的方法歡迎留言一起討論。

解決方案 
一般移除方式都是透過 Windows 控制台內建的移除程式,但其實在 Docker 官方上也有提供 Powershell 語法可以讓使用 Windows 10 的開發者完全將 Docker 移除 : How to completely remove Docker in Windows 10,執行語法如下
  1. $ErrorActionPreference = "SilentlyContinue"
  2.  
  3. kill -force -processname 'Docker for Windows', com.docker.db, vpnkit, com.docker.proxy, com.docker.9pdb, moby-diag-dl, dockerd
  4.  
  5. try {
  6. ./MobyLinux.ps1 -Destroy
  7. } Catch {}
  8.  
  9. $service = Get-WmiObject -Class Win32_Service -Filter "Name='com.docker.service'"
  10. if ($service) { $service.StopService() }
  11. if ($service) { $service.Delete() }
  12. Start-Sleep -s 5
  13. Remove-Item -Recurse -Force "~/AppData/Local/Docker"
  14. Remove-Item -Recurse -Force "~/AppData/Roaming/Docker"
  15. if (Test-Path "C:\ProgramData\Docker") { takeown.exe /F "C:\ProgramData\Docker" /R /A /D Y }
  16. if (Test-Path "C:\ProgramData\Docker") { icacls "C:\ProgramData\Docker\" /T /C /grant Administrators:F }
  17. Remove-Item -Recurse -Force "C:\ProgramData\Docker"
  18. Remove-Item -Recurse -Force "C:\Program Files\Docker"
  19. Remove-Item -Recurse -Force "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Docker"
  20. Remove-Item -Force "C:\Users\Public\Desktop\Docker for Windows.lnk"
  21. Get-ChildItem HKLM:\software\microsoft\windows\currentversion\uninstall | % {Get-ItemProperty $_.PSPath} | ? { $_.DisplayName -eq "Docker" } | Remove-Item -Recurse -Force
  22. Get-ChildItem HKLM:\software\classes\installer\products | % {Get-ItemProperty $_.pspath} | ? { $_.ProductName -eq "Docker" } | Remove-Item -Recurse -Force
  23. Get-Item 'HKLM:\software\Docker Inc.' | Remove-Item -Recurse -Force
  24. Get-ItemProperty HKCU:\software\microsoft\windows\currentversion\Run -name "Docker for Windows" | Remove-Item -Recurse -Force
  25. #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
  26. #Get-ItemProperty HKCU:\software\microsoft\windows\currentversion\UFH\SHC | Where-Object { $(Get-ItemPropertyValue $_) -Contains "Docker" }
且嘗試執行之後執行效率比原本的快很多 ( 原本的一直卡在第一步不動阿阿阿 XD),但也有一個小缺點,就是移除完畢之後不會將在 Windows 開始中的 Docker for window 執行 ICON 移除,如果要立即重新安裝的話會讓 Windows 誤判 Docker 還存在造成安裝失敗,解法也很簡單就是從 Windows 開始找到 Docker 之後,點選 Docker for windows 執行檔,Windows 系統找不到相關應用程式執行檔後在選擇移除,即可順利進行重新安裝 Docker for windows 的動作。 

在 Docker 的 Github 上也有提供另一種解法,就是直接到 Windows 註冊表找到 Docker 註冊檔並刪掉他 (相當暴力的方法阿),由於第一種方式已經順利的將 Docker for Win 移除,這裡先做筆記將此方式記錄下來方便日後有可能使用到
  1. Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
除了 Docker 官方的移除方法,這篇文章也提供給大家另一種方式進行移除 Docker for win,如果跟我有一樣的需求可以參考嘗試看看 :) 

參考
How to completely remove Docker in Windows 10
How to remove Docker for Windows if installer is broken

Related Posts:

  • [Powershell] Windows中開啟PowerShell的幾種方式前言  前幾天在看兩同事討論 powershell 的應用時,討論到後來太抽象決定直接開 code 討論大打出手,竟然發現有自己不知道開啟 powershell 的方式,世界之大無奇不有為了紀念自己的無知,特此紀錄於此篇文章宣告天下自己的愚蠢,也希望如果有跟我一樣狀況的人可以偷學到這些小眉眉角角,然後在跟自己同事討論時再說"什麼! 這你也不會喔" 這種幹話來提高自己在公司的身分地位(誤 開啟 Powershell 方式&n… Read More
  • [Windows] 在 Windows Terminal 新增 Linux Bash Commnadline 前言 在上一篇文章 [Windows] Windows Terminal Preview 初體驗 介紹了 Windows Terminal 的基本操作與使用,其中提到在安裝完預設提供 command 為 powershell 和 cmd 命令提示字元兩種,其實在 Windows Terminal 支援多種 command line,這一篇文章就來介紹如何在 Windows Termina… Read More
  • [Tool] 搶救硬碟大作戰 - WizTree & SpaceSniffer前言 筆電用一陣子之後主硬碟 C 槽一直處於空間不足狀態,為了升級 Windows 10 新版 18362 需要 10 G 空間,使用磁碟清楚也沒有太大的幫助,因此下定決心要好好找到空間不足的殺手,在搜尋以及試用過一些硬碟分析工具之後,發現有兩套不錯的硬碟分析軟體推薦給各位,以下為介紹 WizTree 下載位置 : 傳送門 推薦這套原因是掃描速度非常的快,測試多次掃描公司筆電的 SSD C 主硬碟 128G … Read More
  • [Windows] Chrome - This page isn't working ERR_EMPTY_RESPONSE問題  今天在請客戶測試功能時,客戶反映開發好的功能一直無法正常使用,為了得到更多資訊方便除錯便請客戶截圖查看錯誤訊息,發現使用測試的 Chrome 顯示 'This page is not working, web site did not send any data 此錯誤極少遇到覺得神奇,這篇分享針對此問題的可能發生原因與解決方式,若是有不清楚或是錯誤的地方歡迎討論予糾正。 解決方法 發生異常問題當下,測… Read More
  • [Windows] Windows Terminal Preview 初體驗前言 自從 Build 2019 亮相之後一直對於 Windows Terminal 頗有興趣,終於在六月下旬官方 Blog 公布 Windows Terminal Preview 可以開放下載使用,根據官方 Blog 介紹如下 Windows Terminal! Windows Terminal is a new, modern, fast, efficient, powerful, and productive terminal … Read More

2 則留言:

Copyright © 2025 m@rcus 學習筆記 | Powered by Blogger

Design by Anders Noren | Blogger Theme by NewBloggerThemes.com