# 卸载 Docker Desktop，别把命名数据卷一起清掉

> 卸载前先备份命名数据卷，再分清 Docker 配置目录和虚拟机磁盘状态，哪些该留、哪些可删

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

Docker Desktop 不是一个单独的应用程序，它包含图形界面、后台虚拟机、挂到 `/usr/local/bin` 的命令行工具，还有一块会悄悄涨到几十 GB 的磁盘镜像，把它拖进废纸篓只去掉了界面，其余都还在。

它还有个别处少见的地方：官方卸载程序本身就是会删数据的那一步，事后清理反倒无关痛痒，下面按能保住数据的顺序来，并说明哪些残留可丢、哪些以后还想要回来。

## 卸载会销毁容器、镜像和数据卷

Docker 说得很直白，卸载 Docker Desktop 会销毁容器、镜像、数据卷以及本机其它 Docker 数据，没有撤销，也不进废纸篓，更不会再弹一次确认。

多数内容可以重建，镜像能重新拉取，容器能从 Dockerfile 再构建，例外是命名数据卷，本地数据库真正的数据就在这里，你开发了几个月的 Postgres 或 MySQL 容器，行数据存在数据卷里而不是镜像里，卸载时它会和别的一起被删掉。

在动手之前，先列出已有内容：

```
docker volume ls
```

某个数据卷重要的话，在卸载前备份，不要等卸载之后：

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

从未推送到远端的自建镜像同理，`docker image ls` 能看出本机有什么，不在仓库里的就只存在于这台 Mac。

## 若只是为了腾空间，未必需要卸载

Docker 把几乎所有东西放在一个很大的虚拟磁盘镜像里，通常这就是它占空间最大的那一块，在 Docker 内部做清理往往就能腾出想要的空间，工具还留着，而且可逆，先用 `docker system df` 看各项占比，再读 [在 Mac 上清理 Docker，不必丢掉数据](https://mole.fit/zh/blog/how-to-clean-up-docker-mac)，里面讲了清理方式，以及磁盘文件为什么不会自己缩小。

如果目标是彻底卸掉 Docker，继续往下。

## 用 Docker 自带的卸载程序

Docker 自带卸载程序，做的不只是删掉应用程序包，它会卸下后台服务，并去掉访达拖拽卸载后仍会留下的命令行符号链接。

从应用里操作的话，打开 Docker Desktop，点右上角疑难解答图标，选 Uninstall 再确认，在终端里则运行：

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

然后把 Docker 从应用程序移到废纸篓。

如果卸载程序报 `operation not permitted`，Docker 文档说可以安全忽略，因为卸载其实已经完成，这条提示来自 macOS 保护应用的容器目录，没有“完全磁盘访问权限”时，终端碰不到那里。

## 还剩什么，分别归谁

卸载程序跑完后仍会留下一些目录，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="卸载程序会直接销毁镜像、容器和命名数据卷，不经过废纸篓；Docker 配置目录、Group Containers 里的虚拟机状态，以及普通缓存仍会留在磁盘上。">
  <figcaption>会删数据的是卸载程序本身。镜像和容器能重建，命名数据卷不能；它留下的东西可分成一类你可能还想留，其余可以清掉。</figcaption>
</figure>

`~/.docker` 是配置，里面有上下文、守护进程设置，以及 `docker login` 留下的仓库凭据，若以后重装 Docker，或改用 Colima、Rancher Desktop、OrbStack，这个目录往往值得保留，删掉它等于每个仓库都要重新登录。

`~/Library/Group Containers/group.com.docker` 和应用容器目录装的是虚拟机状态和磁盘镜像，几十 GB 就在这里，既然已接受容器和数据卷都没了，这块才是值得清掉的空间大头。

除了这两处，Docker 还会在 Library 下留下 macOS 常见痕迹：缓存、日志、偏好设置、已保存的应用程序状态，这些都可以丢，所以下手前值得分清哪个是缓存、哪个是凭据，而不是照着文件名里的 `docker` 一路删过去。

## 确认它真的卸干净了

做两项检查，先确认没有进程还在跑：

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

再确认命令行工具已断开链接：

```
which docker docker-compose
```

两者都应该没有输出，若 `docker` 仍能解析到路径，多半是单独用 Homebrew 装过命令行工具，那是另一套包，按设计会在 Docker Desktop 卸载后继续存在，`brew list | grep docker` 可以确认。

## 更快一次看清全部残留

手动路径可行，但前提是你已经知道有哪些路径、哪条才是数据，多数指南恰恰跳过这一步，而出错时代价也最大。

[Mole](https://mole.fit/zh/) 会在动手删除前列出应用留下的每一个文件，按类别分组，让你看清目录实际是什么，旁边还有占用大小，你先审一遍，取消勾选要保留的，清掉的内容进废纸篓而不是直接消失，就 Docker 而言，磁盘镜像通常占回收空间的绝大部分，提交前能看到这个数字，清理才不会变成惊吓。

## 重装之后哪些会回来

镜像和容器会回来，因为它们本来就能重建，镜像重新 pull，容器按 Dockerfile 再 build 一次，命名数据卷不会，它是唯一一类没有别处副本的东西，这也是前面让你先备份的原因。

`~/.docker` 留着的话，registry 登录状态和 context 配置一并回来，省掉重新 `docker login`，删掉了就得重登一遍，不影响功能。

虚拟磁盘镜像会重新创建，但是空的，它的体积会随着你重新拉镜像慢慢涨回去，所以「卸载 Docker 腾出几十 GB」这件事，在你重装并恢复日常使用之后基本会还原，真想长期把这块压住，得靠定期 `docker system prune`，而不是卸载重装。

---

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