# 解除安裝 Docker Desktop，卻不丟掉你的 volume

> 先備份 named volume，再分清 Docker 設定資料夾與解除安裝後留下的虛擬機狀態

Published: 2026-07-27 | Updated: 2026-08-08

Docker Desktop 不是單一應用程式。它包含圖形介面、背景虛擬機、連到 `/usr/local/bin` 的一組命令列工具，以及會悄悄長到數十 GB 的磁碟映像。拖到垃圾桶只會移除其中的圖形介面，其餘都還在。

它也跟多數解除安裝相反：執行官方解除安裝程式才是會摧毀資料的那一步，不是之後的清理。以下是能保住資料的順序，以及如何區分可丟棄的殘留與你會想保留的東西。

## 解除安裝會摧毀 container、image 與 volume

Docker 說得很直接：解除安裝 Docker Desktop 會摧毀本機的 container、image、volume 與其他 Docker 資料。沒有復原，也不會先進垃圾桶。沒有第二次警告。

其中多數可以重建。image 可以再 pull，container 可從 Dockerfile 重建。例外是 named volume：本機資料庫的資料就放在那裡。你用了好幾個月的 Postgres 或 MySQL container，資料列存在 volume 裡，不在 image 裡，而那個 volume 會和其他東西一起被刪掉。

在做任何事之前，先列出目前有什麼：

```
docker volume ls
```

若某個 volume 很重要，請在解除安裝前備份，不是之後：

```
docker run --rm -v <volume>:/from -v "$PWD":/to alpine \
  tar czf /to/<volume>.tgz -C /from .
```

從未 push 過、自己建的東西也一樣。`docker image ls` 會顯示本機有什麼；若不在 registry 裡，就只存在這台 Mac 上。

## 若只是為了空間，你可能根本不必解除安裝

Docker 把所有東西放在一個大型虛擬磁碟映像裡，那個檔案通常是 Docker 佔用空間最大的單一項目。在 Docker 內做 pruning 往往就能拿回你要的空間，同時保留工具本身，而且還有可逆的好處。先用 `docker system df` 看空間分佈，再讀 [在 Mac 上清理 Docker 且不遺失資料](https://mole.fit/tw/blog/how-to-clean-up-docker-mac)，文中涵蓋 pruning 以及磁碟檔案不會自行縮小的原因。

若你是要徹底移除 Docker，請繼續。

## 使用 Docker 自家的解除安裝程式

Docker 內附解除安裝程式，做的不只是刪掉套件。它會卸載背景服務，並移除用 Finder 拖曳後仍會留下的命令列符號連結。

從應用程式：開啟 Docker Desktop，點右上角的 Troubleshoot 圖示，選 Uninstall 並確認。從終端機：

```
/Applications/Docker.app/Contents/MacOS/uninstall
```

接著把 Docker 從「應用程式」移到垃圾桶。

若解除安裝程式回報 `operation not permitted`，Docker 文件表示可安全忽略：解除安裝其實已完成。訊息來自 macOS 保護應用程式的 container 資料夾，終端機若沒有「完整磁碟取用」權限就無法碰它。

## 還剩下什麼，以及各自是什麼

解除安裝程式跑完後，仍有部分資料夾會留下。Docker 點名兩個：

```
~/Library/Group Containers/group.com.docker
~/.docker
```

兩者性質不同，而差異正是重點。

<figure class="blog-diagram">
  <img src="https://mole.fit/img/blog/docker-uninstall-boundary.webp" width="1360" height="454" loading="lazy" alt="解除安裝程式會移除 image、container 與 named volume，且不經垃圾桶；Docker 設定資料夾、Group Containers 的虛擬機狀態與一般快取則仍留在磁碟上。">
  <figcaption>解除安裝程式才是會摧毀資料的那一步。image 與 container 可重建，named volume 不行；留下的東西可分成你可能想保留的一個資料夾，以及其餘可移除的部分。</figcaption>
</figure>

`~/.docker` 是你的設定。它放了 context、daemon 設定，以及 `docker login` 的 registry 憑證。若之後要重裝 Docker，或改用 Colima、Rancher Desktop 或 OrbStack，這個資料夾可能值得保留。刪掉它等於要重新登入每個 registry。

`~/Library/Group Containers/group.com.docker` 與應用程式的 container 資料夾保存虛擬機狀態與磁碟映像。數十 GB 就在這裡。既然已接受 container 與 volume 都沒了，這塊才是值得移除的部分。

除了這兩個，Docker 還會留下 macOS 常見軌跡：Library 底下的快取、紀錄、偏好設定與已儲存的應用程式狀態。這些都可以丟。重點不是刪掉檔名含 `docker` 的每一個檔案，而是分得清哪個是快取、哪個是憑證。

## 確認它真的不在了

兩項檢查。第一，確認沒有東西還在跑：

```
pgrep -fl -i docker
```

第二，確認命令列工具已解除連結：

```
which docker docker-compose
```

兩者都應沒有輸出。若 `docker` 仍解析得到，多半是另外用 Homebrew 裝的 CLI，那是不同套件，依設計會在 Docker Desktop 解除安裝後留下。`brew list | grep docker` 可以確認。

## 更快一次看清全部

手動做法可行，但前提是你已知道哪些路徑存在、其中哪些是你的資料。這正是多數指南略過的部分，也是出錯時真正傷人的地方。

[Mole](https://mole.fit/zh/) 會在移除任何東西前列出應用程式留下的每個檔案，依類型分組，讓你看清資料夾實際是什麼，旁邊還有大小。你檢視清單、取消勾選要保留的，被移除的會進垃圾桶而不是直接消失。對 Docker 來說，磁碟映像通常就佔了幾乎全部可回收空間；提交前先看到那個數字，是清理與意外之間的差別。

## 重裝後會回來的內容

映像與容器會回來，因為它們本來就可重現：映像會重新 pull，容器會依 Dockerfile 重建。具名 volume 則不會。它們是唯一沒有其他地方副本的東西，所以先前的備份步驟才值得做。

保留 `~/.docker`，registry 登入與 context 就會一併回來，省下一輪 `docker login`。刪掉它就得重新登入，只是多花時間，沒有其他代價。

虛擬磁碟映像會以空白狀態重建。你再次 pull 映像時它又會長大，所以解除安裝釋出的數十 GB，若你重裝並恢復平常使用，多半只是暫時的。要長期壓低這個數字，靠的是 `docker system prune`，不是反覆重裝。

---

Canonical HTML page: https://mole.fit/tw/blog/how-to-uninstall-docker-desktop-mac
Blog index for agents: https://mole.fit/tw/blog/llms.txt
Site index for agents: https://mole.fit/llms.txt
