首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >docker检查是否应用了默认的seccomp配置文件

docker检查是否应用了默认的seccomp配置文件
EN

Server Fault用户
提问于 2018-09-05 15:23:52
回答 1查看 5.8K关注 0票数 4

我想知道特定的停靠容器是否运行默认的seccomp配置文件。我无法访问用于启动容器的命令行,也无法访问Dockerfile。

启动ps aufxwww时,我可以看到流程/usr/bin/dockerd-current有选项--seccomp-profile=/etc/docker/seccomp.json。这确实是默认的seccomp配置文件。

但是,启动容器化应用程序的进程/usr/bin/docker-containerd-current还没有。docker inspect返回:"SecurityOpt": null,

那我该相信哪一个?

编辑

更令人惊讶的是,我在显式指定seccomp筛选器的同时运行了一个停靠程序。

代码语言:javascript
复制
docker run -d --security-opt seccomp=/etc/docker/seccomp.python.json friendly

/proc/$pid/status文件返回seccomp 0

据这位男子说,我本来希望:

代码语言:javascript
复制
2 SECCOMP_MODE_FILTER
EN

回答 1

Server Fault用户

发布于 2018-10-30 14:47:03

我不是一个专家,实际上我找到了这个帖子,因为我搜索了同样的问题,但我发现了这个。

如果您使用Seccomp配置文件运行Docker,则可以指定nothing,而docker将使用默认设置,或者在daemon.json或命令行中自己指定配置文件,然后运行:

代码语言:javascript
复制
docker run -it alpine /bin/sh
/ # grep Seccomp /proc/1/status
Seccomp:        2

正如您所看到的,您确实可以看到Seccomp过滤器在码头内。如果显式地告诉docker在没有Seccomp配置文件的情况下运行,就会得到0。

代码语言:javascript
复制
docker run -it --security-opt seccomp=unconfine alpine /bin/sh
/ # grep Seccomp /proc/1/status
Seccomp:        0

所以你可以从码头里面看到它。也许这是有意义的,因为需要被Seccomp配置文件限制的是Docker内部的进程。

您还可以通过下载默认配置文件测试概要文件,并从其中删除某些内容,例如chown,然后尝试:

代码语言:javascript
复制
docker run -it --security-opt seccomp=/etc/docker/myseccomp.json alpine /bin/sh
/ # touch testfile
/ # chown 100.100 testfile
chown: testfile: Operation not permitted

最后,根据手册页,从内核4.14中可以看到如下内容:

代码语言:javascript
复制
/proc/sys/kernel/seccomp/actions_avail

这在我的4.9内核中是不存在的。我希望这对某人有帮助。

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

https://serverfault.com/questions/929589

复制
相关文章

相似问题

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