docker容器如何检查它是否具有能力

BX2*_*X21 3 docker

例如,假设我有一个需要 NET_ADMIN 功能的容器(例如作为容器保持活动)。

当容器运行时,如何检查是否实际提供了该功能,以便我可以添加日志/抛出错误?

Tar*_*ani 7

您可以通过命令来检查功能

$ capsh --print | grep "Current:" | cut -d' ' -f3 | grep -q cap_net_admin
$ echo $?
0

$ capsh --print | grep "Current:" | cut -d' ' -f3 | grep -q cap_net_admins
$ echo $?
1
Run Code Online (Sandbox Code Playgroud)

以下命令显示容器的所有可用功能

$ capsh --打印 | grep "当前:" | 剪切 -d' ' -f3 cap_chown、cap_dac_override、cap_fowner、cap_fsetid、cap_kill、cap_setgid、cap_setuid、cap_setpcap、cap_net_bind_service、cap_net_admin、cap_net_raw、cap_sys_chroot、cap_mknod、cap_audit_write、cap_setfcap+eip