簡體   English   中英

如何識別 runc 容器是否以特權身份運行?

[英]How do I identify if a runc container is running as privileged?

不管 docker/crio/containerd 啟動容器,有沒有辦法了解 runc 容器是否作為特權容器運行?

docker inspect確實顯示了特權,但我想在 runc 層找出答案。

state 和每個runc容器的配置可以從$ROOT_DIR/$CONTAINER_ID/state.json文件中獲取,其中$ROOT_DIR是一組容器的根目錄(通常由特定的更高級別的運行時管理,如 Docker) . 例如,在我的機器上 Docker 使用根目錄/run/docker/runtime-runc/moby ,因此,我可以找到一些容器的runc級配置,如下所示:

# 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級別確定容器是否作為特權容器啟動。

但是,仍然可以說容器是否具有與--privileged參數在 Docker 級別授予的權限相同的權限state.json文件包含授予容器的功能列表容器可用的設備節點列表; seccomp 模式等。 從實際的角度來看,浪費時間檢查所有這些設置是不明智的,因此最好只查看docker inspect

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM