在相对较新且简单的 CoreOS 系统上,尝试运行以下命令:
podman run --rm docker.io/curlimages/curl -v host.containers.internal:2040
结果出现以下错误:
{"msg":"exec container process `/entrypoint.sh`: Permission denied","level":"error","time":"2024-11-22T22:12:56.046889Z"}
我对此完全不知所措。我尝试了以下方法:
sudo setenforce 0
暂时禁用 SELinux,但这并不能改变收到的错误。将标志添加
--userns=keep-id
到命令中,但这也不会改变结果。
例如:
podman run --userns=keep-id --rm docker.io/curlimages/curl -v host.containers.internal:2040
- 对于其他更复杂的 podman 容器,我尝试设置
:z
卷挂载标志,但无济于事。
我的系统肯定出了什么问题。我的系统唯一不正常的地方是,出于兼容性原因,我在同一台机器上同时安装了 podman 和 docker,但我的理解是这不应该发生冲突。
通过一些调试我自己找到了答案。
基本上,有
facl
某种标志干扰了新创建图像的权限,从而导致了一些奇怪的行为。我能够通过删除我的
~/.local/share/containers
并重新开始来解决这个问题,同时确保使用 清除了所有扩展的 facl 权限setfacl -bR ~/.local
。我认为这是用户错误设置的,但我可能会认为用户级 facls 不应该干扰 podman rootless 行为。