如何在 Windows 上卸载 Podman Desktop
Podman Desktop 只是界面,Podman 引擎、它的虚拟机以及里面的容器、镜像和卷都和这个应用本身是分开的。卸载 Podman Desktop 不会动正在跑的虚拟机和它的数据。这份指南覆盖用 RedHat.Podman-Desktop winget 包按用户安装的 Podman Desktop,引擎的移除单独列成一个可选步骤。
先保存工作、停掉虚拟机
先导出或备份正在跑的容器里需要的东西,如果打算连引擎一起移除,再停掉你在用的 Podman 虚拟机。如果只想移除桌面界面、命令行继续用 Podman,跳过下面这一节。
先退出 Podman Desktop
关掉 Podman Desktop 窗口。它和主窗口一起跑着好几个辅助进程,卸载前在任务管理器(Ctrl+Shift+Esc)里确认没有 Podman Desktop.exe 还在。
用自带的卸载器移除应用
打开「设置 › 应用 › 已安装的应用」,找到 Podman Desktop,选择卸载,或者运行:
winget uninstall --id RedHat.Podman-Desktop
数据分别在哪里
| 位置 | 里面是什么 | 如何处理 |
|---|---|---|
%APPDATA%\Podman Desktop |
Podman Desktop 自己的设置和内部用的编辑器式缓存 | 可能重装的话先备份,想从头开始可以删掉 |
%LOCALAPPDATA%\podman-desktop-updater |
下载好的更新安装包 | 可以删 |
按 Podman Desktop 自己的卸载文档,Podman 自己的配置在 ~\.local\share\containers\podman-desktop,装了扩展的话下面的 extensions-storage 子文件夹还存着扩展的二进制文件和插件。这次测试没有生成这个文件夹,所以不在 Mole 检查的范围里,装了扩展的话自己去看一下。千万别删它上层的 containers 文件夹,Podman 引擎和其他容器工具可能还在用那里存数据。
可选:移除 Podman 引擎和它的虚拟机
先把需要的东西备份好再做这一步,重置虚拟机会把里面的容器、镜像和卷全部删掉:
podman machine reset -f
然后按你当初安装的方式移除 Podman(它自己的安装包,或者如果是单独装的,winget uninstall --id RedHat.Podman)。
检查结果
卸载完成后运行下面几条只读命令:
Get-Process "Podman Desktop" -ErrorAction SilentlyContinue
winget list --id RedHat.Podman-Desktop
Test-Path "$env:LOCALAPPDATA\Programs\Podman Desktop"
podman machine list
Get-Process没有输出只表示未观察到匹配进程,被忽略的查询错误不能当作已经退出。winget list正常完成且没有匹配,才说明包记录已经没了;列出一行,说明卸载没完成。Test-Path返回False,说明程序目录已经没了;返回True,说明那里还有文件。- 如果还留着 Podman 引擎,
podman machine list会显示你保留的虚拟机,虚拟机还在不代表 Desktop 没卸干净,两者是分开的。
用 winget 安装时
winget uninstall 运行的是「设置 › 应用」用的同一个 NSIS 卸载器,删的是同一批程序文件,不会主动动 %APPDATA%\Podman Desktop、Podman 引擎或任何虚拟机。
Mole 会列出什么
对按用户安装的 winget 版 Podman Desktop:
- 程序目录和用户开始菜单快捷方式默认勾选。
- 只放下载好的安装包的
%LOCALAPPDATA%\podman-desktop-updater默认勾选。 %APPDATA%\Podman Desktop会列出,但默认不勾选,里面是设置;它里面的缓存(Cache、Code Cache 和几个 GPU 相关缓存)单独列出并默认勾选。podman-desktop://链接登记、一个相关的 CLSID 条目和一个还指向已删除程序的开机启动项都会列出并默认勾选,删除前各自备份成.reg文件。- 应用创建的两条 Windows 防火墙规则会在结果里报告出来给你看,但 Mole 不会删防火墙规则,想清理自己去「Windows Defender 防火墙高级安全」里删。
这次检查覆盖了什么
测试的是通过 winget 按用户安装的 Podman Desktop 1.29.3。这次是在提权环境里安装的,所以卸载器要了管理员权限,普通的按用户安装不会要。没有测试移除 Podman 引擎、它的虚拟机和任何 Kubernetes 集群。
