首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何识别runc容器是否作为特权运行?

如何识别runc容器是否作为特权运行?
EN

Stack Overflow用户
提问于 2020-05-25 10:40:42
回答 1查看 360关注 0票数 2

不管docker/crio/containerd如何启动容器,有没有办法了解runc容器是否以特权容器的身份运行?

docker inspect确实显示了特权,但我想在runc层找出答案。

EN

回答 1

Stack Overflow用户

发布于 2020-05-29 09:03:25

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

代码语言:javascript
复制
# 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模式等等。从实际的角度来看,将时间浪费在检查所有这些设置上是不明智的,所以最好只查看docker inspect

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61994952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档