podman在windows下禁用 rootless 模式

Podman禁用rootless模式指南

在 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 模式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值