![](/img/trans.png)
[英]How do I run a docker container as a privileged user with user namespaces
[英]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.