只有累積,沒有奇蹟

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:

  • [Docker] Docker for windows 初體驗前言 Docker 是一個 open source 專案,誕生於 2013 年初,Docker 屬於 Linux 容器的一種封裝,提供了簡單且易用的容器接口,在 2016 推出 Docker for windows 版本,相信大家或多或少都聽過甚至已經有在使用,自己也接觸過 docker 一小段時間,但都屬於玩票性質未好好研究,或許在新筆電重新安裝的時候是一個好契機可以靜下心來深入研究,以下簡單介紹 Docker 在 Windows 上的安裝流程… Read More
  • [CheatSheets] Docker Cheat Sheet 前言  近期新專案陸續有將應用程式用 Docker,每次要用到都會忘記 Docker 指令屢試不爽,因此決定將小抄放置在 BLOG 防止一直 Google 浪費過多生命 圖片來源 Docker Cheatsheet,如有侵權或是不妥請告知 … Read More
  • [Docker] 無法刪除 Docker 中的 windowsfilter 資料夾問題  在整理硬碟的時候發現 Docker 資料夾中的 windowsfilter 意外的龐大,佔據主硬碟接近 1/3 的空間不說還以驚人的方式成長,且刪除 windowsfilter 時還會跳出錯誤  拒絕存取資料夾 : 您需具有執行此動作的權限 ,這篇就來分享如何解決這問題,若有謬誤或是更快的方法歡迎留言一起討論。  解決方案  使用 WizTree 硬碟分析工具分析硬碟檔… Read More
  • [CheatSheets] Docker Command Diagram 前言  最近在接觸 Docker 查了很多資料,看到一個可以快速了解 Docker 中命令指令關係圖,看完後對整體的大方向可以更加瞭解與各個環節的關係,如下圖所示 圖片來源《Docker —— 從入門到實踐­》正體中文版,如有侵權或是不妥請告知 … Read More
  • [Docker] Image operating system "windows" cannot be used on this platform問題 接獲同事詢問在安裝完 Docker for Windows 之後,練習指令 docker pull image 時候跳出異常訊息,訊息內容為 image operating system "windows" cannot be used on this platform ,回想起自己一開始觀念不熟悉時也發生過類似問題,錯誤訊息如下所示 PS C:\marcustung> docker pull someone/image:l… Read More

2 則留言:

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

Design by Anders Noren | Blogger Theme by NewBloggerThemes.com