gpt4 book ai didi

docker - 如何确定runc容器是否以特权运行?

转载 作者:行者123 更新时间:2023-12-02 18:59:33 24 4
gpt4 key购买 nike

无论docker / crio / containerd启动容器如何,有没有办法了解runc容器是否以特权用户身份运行?
docker inspect确实显示特权,但我想在runc层中查找。

最佳答案

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

# jq .config /run/docker/runtime-runc/moby/$CONTAINER_ID/state.json
{
"no_pivot_root": false,
"parent_death_signal": 0,
"rootfs": "/var/lib/docker/overlay2/<CONTAINER_ID>/merged",
"readonlyfs": false,
...
}

您可以轻松地发现此文件不包含 privileged之类的字段。快速搜索 runc源代码表明它没有特权容器的概念,即,这是高层的抽象。反过来,这意味着没有简单的方法可以从 runc级别确定容器是否以特权用户身份启动。

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

关于docker - 如何确定runc容器是否以特权运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61994952/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com