在 Podman Desktop 里“禁用 rootless 模式”本质上是**让 Podman 以真正的 root 身份运行**。
做法分两步:
1. 保证宿主机上有一个 **root-full** 的 Podman 机器(或原生存储);
2. 告诉 Podman Desktop 今后连接这个 root-full 实例,而不是默认的 rootless 套接字。
下面给出 Windows/Mac/Linux 三种场景的完整操作。照做后,Desktop 里所有「build / run / pull」都会以 root 身份执行,自然就不会再出现 “Cannot change ownership to uid 197609” 这类 rootless 限制。
------------------------------------------------
一、Windows(Podman Desktop ≥ 1.0,使用 WSL 后端)
1. 停掉当前 rootless 机器
podman machine stop
2. 新建一台 root-full 机器(名字随便,这里叫 root)
podman machine init --rootful root
3. 启动它
podman machine start root
这一步完成后,Podman 会生成
\\.\pipe\podman-root-root
以及
npipe:////./pipe/podman-root-root
这两个 root-full 接口。
4. 打开 Podman Desktop → Settings → Resources → Podman
在 “Machine” 下拉框里选中刚创建的 root,点 [Set as default]。
或者直接在主界面右上角 “⛭” → Podman → Connection
把 URI 改成
npipe:////./pipe/podman-root-root
保存后重启 Desktop 即可。
以后想再切回 rootless,只需把默认机器换回原来的 “podman-machine-default”。
------------------------------------------------
二、macOS(Podman Desktop ≥ 1.0,使用 QEMU 后端)
1. 停掉当前机器
podman machine stop
2. 新建 root-full 机器
podman machine init --rootful root
3. 启动
podman machine start root
启动日志里会看到
“Podman API service listening on …/podman-root.sock”
4. Podman Desktop → Settings → Resources → Podman
Machine 下拉框选中 root → [Set as default]。
或者手动把 Connection URI 改成
unix:///Users/$USER/.local/share/containers/podman/machine/root/podman-root.sock
保存并重启 Desktop。
------------------------------------------------
三、Linux(本机原生 Podman)
Linux 上 Podman Desktop 只是图形壳,实际走的是本机 system 或 user 的 socket。
想“全局禁用 rootless”,只要让它连 systemd 的 system service 即可:
1. 启用并启动 root 级别的 socket
sudo systemctl enable --now podman.socket
2. 确认 socket 路径
sudo systemctl status podman.socket
一般监听在
/run/podman/podman.sock
3. 打开 Podman Desktop → Settings → Resources → Podman
在 “Custom” 里填
unix:///run/podman/podman.sock
保存并重启 Desktop。
以后所有操作都会通过 sudo 权限的 daemon,等于“强制 root”。
------------------------------------------------
验证是否已切换成功
在 Desktop 里打开任一终端,执行
podman info --format '{{.Host.Security.Rootless}}'
如果返回 false,说明当前连接的就是 root-full 实例,rootless 已被“禁用”。
------------------------------------------------
小结
Podman Desktop 本身没有“勾选项”去开关 rootless,它只能“连哪个 socket/哪个机器”。
只要给它一个 root-full 的 socket(或 rootful 机器),就等于“禁用”了 rootless 模式。
Podman禁用rootless模式指南
1700

被折叠的 条评论
为什么被折叠?



