在 Mac 上卸载 Docker Desktop
Docker Desktop 的卸载器会删除本机的容器、镜像和数据卷。先备份数据库和命名数据卷,并确认能恢复。保存镜像不等于保存了数据卷里的数据库。这份指南覆盖 Docker 官网下载的 Docker Desktop 和 Homebrew cask docker-desktop。移除应用不会取消 Docker 付费订阅,也不会删除 Docker 账号。
如果只是想腾出空间、还要继续用 Docker,先看如何清理 Docker for Mac,又不丢数据,不必卸载。
先运行 Docker 自带的卸载器
打开 Docker Desktop,点控制面板右上角的 Troubleshoot,选择 Uninstall 并确认。完成后再把 Docker 从「应用程序」移到废纸篓。顺序不要反过来,卸载器就在应用里面。Docker 卸载说明
如果控制面板打不开,Docker 也提供了在终端运行同一个卸载器的方式。它会要求输入密码,并删除 Docker 的数据,所以只在备份之后运行:
/Applications/Docker.app/Contents/MacOS/uninstall
它最后可能对 ~/Library/Containers/com.docker.docker 报 operation not permitted。Docker 说明这时卸载其实已经成功;以后在「系统设置 › 隐私与安全性 › 完全磁盘访问权限」里给终端应用授权,就可以删掉这个文件夹。
数据卷备份、虚拟磁盘和命令行入口的说明见卸载 Docker Desktop,别把命名数据卷一起清掉。
用 Homebrew 安装时
Mole 会先检查 zap 清单,涉及未勾选的数据、其他应用共用的文件或无法确认的内容时不执行 --zap,已勾选的残留仍由 Mole 清理。
docker-desktop 这个 cask 的 zap 清单包含 ~/Library/Containers/com.docker.docker(Docker 的虚拟磁盘,镜像和数据卷都在里面)、~/Library/Group Containers/group.com.docker(设置)和 ~/.docker(CLI 配置和上下文),还有支持文件、缓存和日志文件夹。执行 brew uninstall --cask --zap docker-desktop 会把它们全部移到废纸篓,OrbStack 或单独安装的 Docker CLI 仍在用的 ~/.docker 也不例外。你自己运行这条命令时,zap 清单不看 Mole 的勾选。即使不带 zap,cask 也会卸载 Docker helper、socket 和网络任务,删除 socket 与网络特权辅助工具,并移除它管理的命令链接。这些普通卸载步骤不看 Mole 的残留勾选。先备份,想保留上述数据目录时运行:
brew uninstall --cask docker-desktop
核对剩下的数据
Docker 把下表前两个位置列为卸载器之后可能残留的文件。在 Finder 按 Shift + Command + G 逐个打开。
| 位置 | 里面是什么 | 如何处理 |
|---|---|---|
~/Library/Group Containers/group.com.docker |
Docker Desktop 设置 | 不再使用 Docker Desktop 时移除 |
~/.docker |
CLI 配置、上下文和凭据设置 | OrbStack 或其他 Docker CLI 还在用时保留 |
~/Library/Containers/com.docker.docker |
存放镜像和数据卷的虚拟磁盘 | 确认备份可用之后才处理 |
~/Library/Application Support/Docker Desktop |
控制面板设置和登录会话 | 不再需要这些设置时移除 |
~/.orbstack 属于 OrbStack。只是移除 Desktop 时,不要删它,也不要删 ~/.docker。
检查结果
应用进废纸篓后,运行下面几条只读命令:
pgrep -il docker
launchctl list | grep -i docker
ls /Library/PrivilegedHelperTools | grep -i docker
ls -l /usr/local/bin/docker
ls -d ~/Library/Containers/com.docker.docker ~/Library/Group\ Containers/group.com.docker ~/.docker
pgrep没有输出,说明 Docker 已经退出。列出进程,说明 Desktop、它的虚拟机或某个辅助进程还在运行。launchctl list出现com.docker开头的行,说明还有 Docker 任务在加载,/Library/PrivilegedHelperTools里有com.docker文件,说明 Docker 的特权辅助工具还装着。先把废纸篓中的 Docker.app 放回「应用程序」,或用 Docker 的安装包重新装回应用,再运行卸载器,不要手动删 root 所有的文件。ls -l /usr/local/bin/docker显示docker命令指向哪里。指向已移除的 Docker.app,就是失效链接;指向 OrbStack 或 Homebrew,就属于那份安装。命令还在不代表 Desktop 在运行,连不上守护进程也不能证明数据卷已经删除。ls -d会打印仍然存在的数据文件夹。另有 Docker 环境在用时,~/.docker还在是正常的。
只想腾出空间时
容器镜像、数据卷和 Desktop 应用占用的是磁盘上的不同部分。先在 Docker Desktop 里找出必须保留的数据卷和容器,尤其是数据库,再用产品自带的清理或导出工具处理不再需要的对象。移除 Desktop 是另一个决定。应用图标和 docker 命令在不在,都说明不了虚拟磁盘里还剩什么。
官方卸载器运行之后,在目标环境里确认备份的数据卷能恢复。无法确认备份时,先暂停后续清理,不要把剩下的目录一并删掉。
Mole 会列出什么
下文数据行不勾选的状态按「卸载时一并移除数据和配置」关闭时说明,这个选项默认关闭,开启后符合条件的应用自有需确认行可能预先勾选,想留的数据取消勾选,共享和受保护的数据仍需单独确认或继续保留。
以下是 Mole 对官网下载版 Docker Desktop 的处理:
~/Library/Application Support/Docker Desktop会列出,但默认不勾选。- 名为
com.docker.*的缓存默认勾选。 ~/.docker和~/.orbstack不会列出,因为 OrbStack 也会写这两个位置。- 存放镜像和数据卷的虚拟磁盘
~/Library/Containers/com.docker.docker不会列出。 - Docker 的特权辅助工具和启动任务交给 Docker 的卸载器处理;Mole 对它们的处理还没有测试。
这次检查覆盖了什么
2026 年 9 月 18 日,从 Docker 官网下载安装 Docker Desktop,和 OrbStack 一起用 Mole 的开发构建卸载。2.32 GB 的应用进了废纸篓;17.6 MB 的 com.docker.docker 容器没能移动;卸载后登录项里仍有一条 Docker 辅助程序,指向废纸篓里的应用。~/.docker 按设计留在原处。Docker 自带的卸载器、特权辅助工具、Homebrew cask 和数据卷备份都没有测试。
