Docker 如何识别runc容器是否以特权运行?

Docker 如何识别runc容器是否以特权运行?,docker,containerd,runc,cri-o,Docker,Containerd,Runc,Cri O,不管docker/crio/container如何启动容器,是否有办法了解runc容器是否作为特权容器运行 docker inspect确实显示了隐私,但我想在runc层找到它。每个runc容器的状态和配置可以从$ROOT\u DIR/$container\u ID/state.json文件中获得,其中$ROOT\u DIR是一组容器的根目录(通常由特定的更高级别的运行时(如Docker)管理)。例如,在我的机器上,Docker使用根目录/run/Docker/runc/moby,因此,我可以找

不管docker/crio/container如何启动容器,是否有办法了解runc容器是否作为特权容器运行


docker inspect
确实显示了隐私,但我想在runc层找到它。

每个
runc
容器的状态和配置可以从
$ROOT\u DIR/$container\u ID/state.json
文件中获得,其中
$ROOT\u DIR
是一组容器的根目录(通常由特定的更高级别的运行时(如Docker)管理)。例如,在我的机器上,Docker使用根目录
/run/Docker/runc/moby
,因此,我可以找到一些容器的
runc
级别配置,如下所示:

#jq.config/run/docker/runtime runc/moby/$CONTAINER\u ID/state.json
{
“无轴根”:false,
“家长死亡信号”:0,
“rootfs”:“/var/lib/docker/overlay2//merged”,
“readonlyfs”:错误,
...
}
您可以很容易地发现该文件不包含像
privileged
这样的字段。快速搜索
runc
源代码表明它没有特权容器的概念,即这是从更高级别的抽象。这意味着,没有简单的方法来确定容器是否是否从
runc
级别作为特权启动


但是,仍然可以确定容器是否具有与Docker级别的
--privileged
参数授予的权限相同的权限:
state.json
文件包含授予容器的功能列表;容器可用的设备节点列表;seccomp模式等等从根本上讲,浪费时间检查所有这些设置是不明智的,因此最好只查看
docker inspect

我同意上述观点。但在runc层工作可以让我在一定程度上兼容docker、containerd和cri-o